19 Jan 2017

feedPlanet Ubuntu

Daniel Pocock: Which movie most accurately forecasts the Trump presidency?

Many people have been scratching their heads wondering what the new US president will really do and what he really stands for. His alternating positions on abortion, for example, suggest he may simply be telling people what he thinks is most likely to win public support from one day to the next. Will he really waste billions of dollars building a wall? Will Muslims really be banned from the US?

As it turns out, several movies provide a thought-provoking insight into what could eventuate. What's more, these two have a creepy resemblance to the Trump phenomenon and many of the problems in the world today.

Countdown to Looking Glass

On the classic cold war theme of nuclear annihilation, Countdown to Looking Glass is probably far more scary to watch on Trump eve than in the era when it was made. Released in 1984, the movie follows a series of international crises that have all come to pass: the assassination of a US ambassador in the middle east, a banking crisis and two superpowers in an escalating conflict over territory. The movie even picked a young Republican congressman for a cameo role: he subsequently went on to become speaker of the house. To relate it to modern times, you may need to imagine it is China, not Russia, who is the adversary but then you probably won't be able to sleep after watching it.

cleaning out the swamp?

The Omen

Another classic is The Omen. The star of this series of four horror movies, Damien Thorn, appears to have a history that is eerily reminiscent of Trump: born into a wealthy family, a series of disasters befall every honest person he comes into contact with, he comes to control a vast business empire acquired by inheritance and as he enters the world of politics in the third movie of the series, there is a scene in the Oval Office where he is flippantly advised that he shouldn't lose any sleep over any conflict of interest arising from his business holdings. Did you notice Damien Thorn and Donald Trump even share the same initials, DT?

19 Jan 2017 7:31pm GMT

Ubuntu Insights: Winners of #UbuntuAtMWC

A couple weeks ago we held a competition to invite you to join us at MWC by telling us what you wanted to see from #UbuntuAtMWC across Cloud, Devices or IoT!

We had some awesome entries which were very hard to limit down to 10!

A big thank you to all who entered including our winners selected below and we can't wait to see you at MWC in Hall P3 - 3K31!


I want to hear MORE real-world IoT use cases of Ubuntu Core like the above. Every telecom company is eagerly awaiting this! #UbuntuAtMWC pic.twitter.com/MmAGTDXZ2g

- Ema Hussain (@EmaSpeaks) January 10, 2017


#ubuntuatMWC We would like to see an education focus on @Raspberry_Pi which we use in #solar schools #zambia pic.twitter.com/VXuD0JxIBh

- Giakonda IT Ltd (@Giakonda) January 11, 2017


i want to hear about creative ways people are using ubuntu snaps to build their own devices like a DIY amazon echo. #UbuntuAtMWC pic.twitter.com/wSZb0gq9JC

- Raymond Rouf (@raymondspeaks) January 12, 2017


I want to see a Smart Home demo based on Ubuntu #UbuntuAtMWC pic.twitter.com/kEtGLD5N76

- Carles Rodoreda (@crodoreda) January 10, 2017


I also want to see drones!! #UbuntuAtMWC pic.twitter.com/PKGVuyW8AK

- Jamie Allan (@jamieallan86) January 12, 2017


I want to see more true #snap based convergence from #UbuntuAtMWC across Cloud, Devices and #IoT @Canonical @ubuntu #MWC pic.twitter.com/wp0rOTshWc

- Andy Bleaden (@andybleaden) January 10, 2017


A new form factor consumer
hub device demonstrating the @ubuntu phone/ PC/ cloud/ IoT/ robot/ TV unified experience

- 101LITE (@101lite) January 9, 2017


Would love to meet the @Ubuntu team in Barcelona at #MWC17 and check out the #Ubuntu vending machines and #IoT home devices! #UbuntuAtMWC pic.twitter.com/oDP4c40MvZ

- Alessandro Bellu (@a_bellu) January 12, 2017


At #MWC17 I'd like to see #Ubuntu running IoT use cases using #Ethereum or blockchain tech in general. #UbuntuAtMWC

- Martin Jakl (@JaklMartin) January 12, 2017


As a telco marketer, I want to hear about Ubuntu's plans with major brands & startups to make IoT a reality #UbuntuAtMWC pic.twitter.com/n74sqrefvW

- Darren Ball (@DarrenBall4) January 11, 2017

More info on Ubuntu at MWC here!

19 Jan 2017 4:19pm GMT

Nathan Haines: UbuCon Summit at SCALE 15x Call for Papers

UbuCons are a remarkable achievement from the Ubuntu community: a network of conferences across the globe, organized by volunteers passionate about Open Source and about collaborating, contributing, and socializing around Ubuntu. UbuCon Summit at SCALE 15x is the next in the impressive series of conferences.

UbuCon Summit at SCALE 15x takes place in Pasadena, California on March 2nd and 3rd during the first two days of SCALE 15x. Ubuntu will also have a booth at SCALE's expo floor from March 3rd through 5th.

We are putting together the conference schedule and are announcing a call for papers. While we have some amazing speakers and an always-vibrant unconference schedule planned, it is the community, as always, who make UbuCon what it is-just as the community sets Ubuntu apart.

Interested speakers who have Ubuntu-related topics can submit their talk to the SCALE call for papers site. UbuCon Summit has a wide range of both developers and enthusiasts, so any interesting topic is welcome, no matter how casual or technical. The SCALE CFP form is available here:


Over the next few weeks we'll be sharing more details about the Summit, revamping the global UbuCon site and updating the SCALE schedule with all relevant information.


About SCaLE:

SCALE 15x, the 15th Annual Southern California Linux Expo, is the largest community-run Linux/FOSS showcase event in North America. It will be held from March 2-5 at the Pasadena Convention Center in Pasadena, California. For more information on the expo, visit https://www.socallinuxexpo.org

19 Jan 2017 10:12am GMT

18 Jan 2017

feedPlanet Ubuntu

Stéphane Graber: LXD on Debian (using snapd)

LXD logo


So far all my blog posts about LXD have been assuming an Ubuntu host with LXD installed from packages, as a snap or from source.

But LXD is perfectly happy to run on any Linux distribution which has the LXC library available (version 2.0.0 or higher), a recent kernel (3.13 or higher) and some standard system utilities available (rsync, dnsmasq, netcat, various filesystem tools, …).

In fact, you can find packages in the following Linux distributions (let me know if I missed one):

We have also had several reports of LXD being used on Centos and Fedora, where users built it from source using the distribution's liblxc (or in the case of Centos, from an external repository).

One distribution we've seen a lot of requests for is Debian. A native Debian package has been in the works for a while now and the list of missing dependencies has been shrinking quite a lot lately.

But there is an easy alternative that will get you a working LXD on Debian today!
Use the same LXD snap package as I mentioned in a previous post, but on Debian!


Installing snapd and LXD

Getting the latest stable LXD onto an up to date Debian testing system is just a matter of running:

apt install snapd
snap install lxd

If you never used snapd before, you'll have to either logout and log back in to update your PATH, or just update your existing one with:

. /etc/profile.d/apps-bin-path.sh

And now it's time to configure LXD with:

root@debian:~# lxd init
Name of the storage backend to use (dir or zfs) [default=dir]:
Create a new ZFS pool (yes/no) [default=yes]?
Name of the new ZFS pool [default=lxd]:
Would you like to use an existing block device (yes/no) [default=no]?
Size in GB of the new loop device (1GB minimum) [default=15]:
Would you like LXD to be available over the network (yes/no) [default=no]?
Would you like stale cached images to be updated automatically (yes/no) [default=yes]?
Would you like to create a new network bridge (yes/no) [default=yes]?
What should the new bridge be called [default=lxdbr0]?
What IPv4 subnet should be used (CIDR notation, "auto" or "none") [default=auto]?
What IPv6 subnet should be used (CIDR notation, "auto" or "none") [default=auto]?
LXD has been successfully configured.

And finally, you can start using LXD:

root@debian:~# lxc launch images:debian/stretch debian
Creating debian
Starting debian

root@debian:~# lxc launch ubuntu:16.04 ubuntu
Creating ubuntu
Starting ubuntu

root@debian:~# lxc launch images:centos/7 centos
Creating centos
Starting centos

root@debian:~# lxc launch images:archlinux archlinux
Creating archlinux
Starting archlinux

root@debian:~# lxc launch images:gentoo gentoo
Creating gentoo
Starting gentoo

And enjoy your fresh collection of Linux distributions:

root@debian:~# lxc list
|   NAME    |  STATE  |         IPV4          |                     IPV6                      |    TYPE    | SNAPSHOTS |
| archlinux | RUNNING | (eth0) | fd42:46d0:3c40:cca7:216:3eff:fe40:7b1b (eth0) | PERSISTENT | 0         |
| centos    | RUNNING | (eth0) | fd42:46d0:3c40:cca7:216:3eff:fe87:64ff (eth0) | PERSISTENT | 0         |
| debian    | RUNNING | (eth0) | fd42:46d0:3c40:cca7:216:3eff:feb4:e984 (eth0) | PERSISTENT | 0         |
| gentoo    | RUNNING | (eth0) | fd42:46d0:3c40:cca7:216:3eff:fe27:10ca (eth0) | PERSISTENT | 0         |
| ubuntu    | RUNNING | (eth0)  | fd42:46d0:3c40:cca7:216:3eff:fedc:f0a6 (eth0) | PERSISTENT | 0         |


The availability of snapd on other Linux distributions makes it a great way to get the latest LXD running on your distribution of choice.

There are still a number of problems with the LXD snap which may or may not be a blocker for your own use. The main ones at this point are:

If you want non-root users to have access to the LXD daemon. Simply make sure that a "lxd" group exists on your system and add whoever you want to manage LXD into that group, then restart the LXD daemon.

Extra information

The snapd website can be found at: http://snapcraft.io

The main LXD website is at: https://linuxcontainers.org/lxd
Development happens on Github at: https://github.com/lxc/lxd
Mailing-list support happens on: https://lists.linuxcontainers.org
IRC support happens in: #lxcontainers on irc.freenode.net
Try LXD online: https://linuxcontainers.org/lxd/try-it

18 Jan 2017 10:19pm GMT

Ubuntu Insights: 5 Cool things Canonical does with Go

We had the recent news that Google's Go was awarded programming language of 2016 by TIOBE! One of the main reasons for winning is the ease of learning and pragmatic nature. It's less about theoretical nature and more about hands-on-experience, which is why more and more customers are adopting go in Industrial settings. At Canonical we're doing the same! As supporters of Go, here are 5 cool things we've done with Go:

1. Juju. Juju is devops distilled. Juju enables you to use Charms to deploy your application architectures to EC2, OpenStack, Azure, HP your data center and even your own Ubuntu based laptop. Moving between models is simple giving you the flexibility to switch hosts whenever you want - for free. Code is at https://github.com/juju/juju.

2. The snapd and snap tools enable systems to work with .snap files. Package any app for every Linux desktop, server, cloud or device, and deliver updates directly. See snapcraft.io for a high level overview about snap files and the snapd application. Some great go code is at https://github.com/snapcore/snapd.

3. The LXD container hypervisor enables you to move your Linux VMs straight to containers, easily and without modifying the apps or your operations. Canonical's LXD is a pure-container hypervisor that runs unmodified Linux operating systems and applications with VM-style operations at incredible speed and density. It's open source, you can see how it's done at https://github.com/lxc/lxd.

4. snapweb is a beautiful and functional interface for snap management. It's a cross html/css/javascript and golang excellent web application whose code can be looked at on https://github.com/snapcore/snapweb.

5. We also do some advanced demo code to demonstrate our technology. We love Go so much that we did write face-detection-demo, which enables to detect and count faces based on time. Using the go-opencv binding, we even did some fixes for it to compile on arm architecture! Have a look at https://github.com/ubuntu/face-detection-demo.

Learn more here at the TIOBE index.

18 Jan 2017 11:42am GMT

Jonathan Riddell: Get Yourself on www.kde.org

Google Code-in has just finished where school pupils do tasks to introduce themselves to open development. I had one to update the screenshots on www.kde.org. The KDE website is out of date in many ways but here's a wee way to fix one part of it. Despite me having about half a dozen students work on it there's still some old screenshots there so if anyone wants the satisfaction of contributing to www.kde.org's front page here's an easy way.

www.kde.org has screenshots of all our apps but many still use the old KDE 4 Oxygen widget theme and icons.

For 10 screenshots which is using the old theme take a new screenshot using the new theme.

They can be checked out from Subversion here https://websvn.kde.org/trunk/www/sites/www/images/screenshots/ also provide one the resized screenshot which is 400 pixels wide exactly.

Keep the filenames the same and in lower case.

Upload as a single .zip or .tar.gz containing the screenshots with the right file name and a folder resized/ with the 400px screenshots

For bonus points you could go through the index file to make sure it's current with KDE applications https://www.kde.org/applications/index.json

Facebooktwittergoogle_pluslinkedinby feather

18 Jan 2017 9:50am GMT

17 Jan 2017

feedPlanet Ubuntu

Simos Xenitellis: How to completely remove a third-party repository from Ubuntu

Suppose you added a third-party repository of DEB packages in your Ubuntu and you now want to completely remove it, by either downgrading the packages to the official version in Ubuntu or removing them altogether. How do you do that?

Well, if it was a Personal Package Archive (PPA), you would simply use ppa-purge. ppa-purge is not pre-installed in Ubuntu, so we install it with

sudo apt update
sudo apt install ppa-purge

Here is the help for ppa-purge:

$ ppa-purge
Warning:  Required ppa-name argument was not specified
Usage: sudo ppa-purge [options] <ppa:ppaowner>[/ppaname]

ppa-purge will reset all packages from a PPA to the standard
versions released for your distribution.

    -p [ppaname]        PPA name to be disabled (default: ppa)
    -o [ppaowner]        PPA owner
    -s [host]        Repository server (default: ppa.launchpad.net)
    -d [distribution]    Override the default distribution choice.
    -y             Pass -y --force-yes to apt-get or -y to aptitude
    -i            Reverse preference of apt-get upon aptitude.
    -h            Display this help text

Example usage commands:
    sudo ppa-purge -o xorg-edgers
    will remove https://launchpad.net/~xorg-edgers/+archive/ppa

    sudo ppa-purge -o sarvatt -p xorg-testing
    will remove https://launchpad.net/~sarvatt/+archive/xorg-testing

    sudo ppa-purge [ppa:]ubuntu-x-swat/x-updates
    will remove https://launchpad.net/~ubuntu-x-swat/+archive/x-updates

Notice: If ppa-purge fails for some reason and you wish to try again,
(For example: you left synaptic open while attempting to run it) simply
uncomment the PPA from your sources, run apt-get update and try again.

Here is an example of ppa-purge that removes a PPA:
Suppose we want to completely uninstall the Official Wine Builds PPA. The URI of the PPA is shown on that page in bold, and it is ppa:wine/wine-builds.

To uninstall this PPA, we run

$ sudo ppa-purge ppa:wine/wine-builds
Updating packages lists
PPA to be removed: wine wine-builds
Package revert list generated:
wine-devel- wine-devel-amd64- wine-devel-i386:i386- winehq-devel-

Disabling wine PPA from
Updating packages lists
PPA purged successfully
$ _

But how do we completely uninstall the packages of a third-party repository? Those do not have a URI that is similar to the format that ppa-purge needs!

Let's see an example. If you have an Intel graphics card, you may choose to install their packaged drivers from 01.org. For Ubuntu 16.04, the download page is https://01.org/linuxgraphics/downloads/intel-graphics-update-tool-linux-os-v2.0.2 Yes, they provide a tool that you run on your system and performs a set of checks. Once those checks pass, it adds the Intel repository for Intel Graphics card drivers. You do not see a similar URI from this page, you need to dig deeper after you installed them to find out.

The details of the repository are in /etc/apt/sources.list.d/intellinuxgraphics.list and it is this single line

deb https://download.01.org/gfx/ubuntu/16.04/main xenial main #Intel Graphics drivers

How did we figure out the parameters for ppa-purge? These parameters are just used to identify the correct file in /var/lib/apt/lists/ For the case of the Intel drivers, the relevant files in /var/lib/apt/lists are


The important ones are the *_Packages files. The important source code line in ppa-purge that will help us, is


therefore, we select the parameters for ppa-purge accordingly:

-s download.01.org   for   ${PPAHOST}
-o gfx               for   ${PPAOWNER}
-p ubuntu            for   ${PPANAME}

Now ppa-purge can remove the packages from such a PPA as well, by using these parameters:

sudo ppa-purge -s download.01.org -o gfx -p ubuntu

That's it!

17 Jan 2017 10:20pm GMT

16 Jan 2017

feedPlanet Ubuntu

Raphaël Hertzog: Freexian’s report about Debian Long Term Support, December 2016

A Debian LTS logoLike each month, here comes a report about the work of paid contributors to Debian LTS.

Individual reports

In December, about 175 work hours have been dispatched among 14 paid contributors. Their reports are available:

Evolution of the situation

The number of sponsored hours did not increase but a new silver sponsor is in the process of joining. We are only missing another silver sponsor (or two to four bronze sponsors) to reach our objective of funding the equivalent of a full time position.

The security tracker currently lists 31 packages with a known CVE and the dla-needed.txt file 27. The situation improved a little bit compared to last month.

Thanks to our sponsors

New sponsors are in bold.

No comment | Liked this article? Click here. | My blog is Flattr-enabled.

16 Jan 2017 2:39pm GMT

Ted Gould: Presentations Updated

This post is mostly a mea cupla to all the folks that asked me after a presentation: "And those slides will be online?" The answer is generally "yes" but they were in a tweet or something equally as hard to find. But now I finally got to making an updated presentations page that is actually useful. Hopefully you can find the slides you are looking for there. And more importantly you can use them as a basis for your talk to a local group in your town.

As I was redoing this I thought it was a bit interesting how my title pages seem to alternate every couple of years between complex and simple. And I think I have a candidate for worst theme (though there was a close second). Also a favorite theme along with a reminder of all the fun it is to make a presentation with JessyInk.

I think that there are a couple missing that I can't find, and also video links out on the Internet somewhere. Please drop me a line if you have any ideas, suggestions or I sent you files that I've now lost. Hopefully this is easier to maintain now so there won't be the same delay.

16 Jan 2017 6:00am GMT

15 Jan 2017

feedPlanet Ubuntu

Valorie Zimmerman: Google Code-in draws to a close -- students finish your final task by January 16, 2017 at 09:00 (PST)

KDE's Google Code-in party is ending once again. Student work submitted deadline is January 16, 2017 at 09:00 (PST).

Mentors, you have until January 18, 2017 at 09:00 (PST) to evaluate your student's work. Please get that done before the deadline, so that admins don't have to judge the student work.

Then it will be time to choose winners. We need to have our choices in by January 23, 2017 at 09:00 (PST). Winners and Finalists will be announced January 30, 2017 at 09:00 (PST).

To me, this contest has been lovely. Because there are more organizations participating now, there are more tasks for students, and less pressure on each org. It seems that the students have enjoyed themselves as well.

Spencerb said, in #kde-soc, This was my first (and final) gci, so I don't have much of a point of comparison, but it's been awesome. I've been an opportunity to meet new people and just get involved with KDE, which I've wanted to do for a long time. I've also learned a lot about serious software development that I wouldn't have otherwise.

"I'll turn 18 this Monday, which is why this is my last year :( I'm so glad to have had the chance to participate at least once.

As a task, Harpreet filed a GCi review: http://aboutgci2016.blogspot.in/

So far, we've had 121 students. The top ten have 103 completed tasks so far! And 160 tasks completed so far. Most exciting for me is that Beginner tasks completed: 45. Getting kids acquainted with Free and Open Source Software communities, which is why every organization must have beginner tasks. I'm glad 45 kids got to know KDE a bit.

15 Jan 2017 5:04am GMT

14 Jan 2017

feedPlanet Ubuntu

Mattia Migliorini: Install Balsamiq Mockups in Debian/Ubuntu


Balsamiq is one of the best tools for quick wireframes creation. It allows you to efficiently and quickly create mockups that give you an idea of how design elements fit in the page.

Some years ago there was a package available for the most popular Linux distributions, but since Adobe dropped support for Linux and Balsamiq is built on top of Adobe Air, nowadays they don't support Linux neither.

As you can see from the downloads page of Balsamiq, though, it luckily works well with wine.

Install Balsamiq with WINE

First things first: install wine.

sudo apt-get install wine

Now, let's proceed with an easy step-by-step guide.

  1. Download the Balsamiq Bundle that includes Adobe Air (if the link does not work, head on to Balsamic Downloads and download the version With Adobe Air bundled)
  2. Open a terminal, unzip the bundle and move it to /opt (change the Downloads directory name according to your setup)
    cd Downloads
    unzip Balsamiq*
    sudo mv Balsamiq* /opt
  3. To make life easier, rename the .exe to simply balsamiq.exe
    cd /opt/Balsamiq_Mockups_3/
    mv Balsamiq\\ Mockups\\ 3.exe balsamiq.exe
  4. Now you can run Balsamiq Mockups by running it with wine
    wine /opt/Balsamiq_Mockups_3/balsamiq.exe

Add Balsamiq as an application

The last optional step can save you a lot of time in launching Balsamiq, because it saves you the hassle of writing the command in point 4 above every time you want to launch it (and remembering the Balsamiq executable location). This simply consists in creating a new desktop entry for Balsamiq, which will add it to the applications list of your operating system.

Create the file ~/.local/share/applications/Balsamiq.desktop with the following content:

[Desktop Entry]
Name=Balsamiq Mockups
Exec=wine /opt/Balsamiq_Mockups_3/balsamiq.exe

If you are on Ubuntu with Unity, you can add the following lines too:


Now, just save and have a look at your Dash or Activity Panel to see if it works.

Install Balsamiq Mockups with Play on Linux

Eric suggests the use of Play on Linux for an easier installation process and reports that for him Balsamiq Mockups 3 works like a charm in that environment. Worth a try!

The post Install Balsamiq Mockups in Debian/Ubuntu appeared first on deshack.

14 Jan 2017 9:16am GMT

Ted Gould: The Case for Ubuntu Phone

There are times in standard social interactions where people ask what you do professionally, which means I end up talking about Ubuntu and specifically Ubuntu Phone. Many times that comes down to the seemingly simple question: "Why would I want an Ubuntu phone?" I've tried the answer "becasue I'm a thought leader and you should want to be like me," but sadly that gets little traction outside of Silicon Valley. Another good answer is all the benefits of Free Software, but many of those are benefits the general public doesn't yet realize they need.

Ubuntu Phone

The biggest strength and weakness of Ubuntu Phone is that it's a device without an intrinsic set of services. If you buy an Android device you get Google Services. If you buy an iPhone you get Apple services. While these can be strengths (at least in Google's case) they are effectively a lock in to services that may or may not meet your requirements. You certainly can get Telegram or Signal for either of those, but they're never going to be as integrated as Hangouts or iMessage. This goes throughout the device including things like music and storage as well. Ubuntu and Canonical don't provide those services, but instead provide integration points for any of them (including Apple and Google if they wanted) to work inside an Ubuntu Phone. This means as a user you can use the services you want on your device, if you love Hangouts and Apple Maps, Ubuntu Phone is happy to be a freak with you.

Carriers are also interested in this flexibility. They're trying to put together packages of data and services that will sell, and fetch a premium price (effectively bundling). Some they may provide themselves and some by well known providers; but by not being able to select options for those base services they have less flexibility on what they can do. Sure, Google and Apple could give them a great price or bundle, but they both realize that they don't have to. So that effectively makes it difficult for the carriers as well as alternate service providers (e.g. Dropbox, Spotify, etc) to compete.

What I find most interesting thing about this discussion is that it is the original reason that Google bought Android. They were concerned that with Apple controlling the smartphone market they'd be in a position to damage Google's ability to compete in services. They were right. But instead of opening it up to competition (a competition that certainly at the time and even today they're likely to win) they decided to lock down Android with their own services. So now we see in places like China where Google services are limited there is no way for Android to win, only forks that use a different set of integrations. One has to wonder if Ubuntu Phone existed earlier whether Google would have bought Android, while Ubuntu Phone competes with Android it doesn't pose any threat to Google's core businesses.

It is always a failure to try and convince people to change their patterns and devices just for the sake of change. Early adopters are people who enjoy that, but not the majority of people. This means that we need to be an order of magnitude better, which is a pretty high bar to set, but one I enjoy working towards. I think that Ubuntu Phone has the fundamental DNA to win in this race.

14 Jan 2017 6:00am GMT

13 Jan 2017

feedPlanet Ubuntu

Stéphane Graber: Running Kubernetes inside LXD

LXD logo


For those who haven't heard of Kubernetes before, it's defined by the upstream project as:

Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.

It groups containers that make up an application into logical units for easy management and discovery. Kubernetes builds upon 15 years of experience of running production workloads at Google, combined with best-of-breed ideas and practices from the community.

It is important to note the "applications" part in there. Kubernetes deploys a set of single application containers and connects them together. Those containers will typically run a single process and so are very different from the full system containers that LXD itself provides.

This blog post will be very similar to one I published last year on running OpenStack inside a LXD container. Similarly to the OpenStack deployment, we'll be using conjure-up to setup a number of LXD containers and eventually run the Docker containers that are used by Kubernetes.


This post assumes you've got a working LXD setup, providing containers with network access and that you have at least 10GB of space for the containers to use and at least 4GB of RAM.

Outside of configuring LXD itself, you will also need to bump some kernel limits with the following commands:

sudo sysctl fs.inotify.max_user_instances=1048576  
sudo sysctl fs.inotify.max_queued_events=1048576  
sudo sysctl fs.inotify.max_user_watches=1048576  
sudo sysctl vm.max_map_count=262144

Setting up the container

Similarly to OpenStack, the conjure-up deployed version of Kubernetes expects a lot more privileges and resource access than LXD would typically provide. As a result, we have to create a privileged container, with nesting enabled and with AppArmor disabled.

This means that not very much of LXD's security features will still be in effect on this container. Depending on how you feel about this, you may choose to run this on a different machine.

Note that all of this however remains better than instructions that would have you install everything directly on your host machine. If only by making it very easy to remove it all in the end.

lxc launch ubuntu:16.04 kubernetes -c security.privileged=true -c security.nesting=true -c linux.kernel_modules=ip_tables,ip6_tables,netlink_diag,nf_nat,overlay -c raw.lxc=lxc.aa_profile=unconfined
lxc config device add kubernetes mem unix-char path=/dev/mem

Then we need to add a couple of PPAs and install conjure-up, the deployment tool we'll use to get Kubernetes going.

lxc exec kubernetes -- apt-add-repository ppa:conjure-up/next -y
lxc exec kubernetes -- apt-add-repository ppa:juju/stable -y
lxc exec kubernetes -- apt update
lxc exec kubernetes -- apt dist-upgrade -y
lxc exec kubernetes -- apt install conjure-up -y

And the last setup step is to configure LXD networking inside the container.
Answer with the default for all questions, except for:

lxc exec kubernetes -- lxd init

And that's it for the container configuration itself, now we can deploy Kubernetes!

Deploying Kubernetes with conjure-up

As mentioned earlier, we'll be using conjure-up to deploy Kubernetes.
This is a nice, user friendly, tool that interfaces with Juju to deploy complex services.

Start it with:

lxc exec kubernetes -- sudo -u ubuntu -i conjure-up

This will now deploy Kubernetes. The whole process can take well over an hour depending on what kind of machine you're running this on. You'll see all services getting a container allocated, then getting deployed and finally interconnected.

Once the deployment is done, a few post-install steps will appear. This will import some initial images, setup SSH authentication, configure networking and finally giving you the IP address of the dashboard.

Interact with your new Kubernetes

We can ask juju to deploy a new kubernetes workload, in this case 5 instances of "microbot":

ubuntu@kubernetes:~$ juju run-action kubernetes-worker/0 microbot replicas=5
Action queued with id: 1d1e2997-5238-4b86-873c-ad79660db43f

You can then grab the service address from the Juju action output:

ubuntu@kubernetes:~$ juju show-action-output 1d1e2997-5238-4b86-873c-ad79660db43f
 address: microbot.
status: completed
 completed: 2017-01-13 10:26:14 +0000 UTC
 enqueued: 2017-01-13 10:26:11 +0000 UTC
 started: 2017-01-13 10:26:12 +0000 UTC

Now actually using the Kubernetes tools, we can check the state of our new pods:

ubuntu@kubernetes:~$ ./kubectl get pods
default-http-backend-w9nr3 1/1 Running 0 21m
microbot-1855935831-cn4bs 0/1 ContainerCreating 0 18s
microbot-1855935831-dh70k 0/1 ContainerCreating 0 18s
microbot-1855935831-fqwjp 0/1 ContainerCreating 0 18s
microbot-1855935831-ksmmp 0/1 ContainerCreating 0 18s
microbot-1855935831-mfvst 1/1 Running 0 18s
nginx-ingress-controller-bj5gh 1/1 Running 0 21m

After a little while, you'll see everything's running:

ubuntu@kubernetes:~$ ./kubectl get pods
default-http-backend-w9nr3 1/1 Running 0 23m
microbot-1855935831-cn4bs 1/1 Running 0 2m
microbot-1855935831-dh70k 1/1 Running 0 2m
microbot-1855935831-fqwjp 1/1 Running 0 2m
microbot-1855935831-ksmmp 1/1 Running 0 2m
microbot-1855935831-mfvst 1/1 Running 0 2m
nginx-ingress-controller-bj5gh 1/1 Running 0 23m

At which point, you can hit the service URL with:

ubuntu@kubernetes:~$ curl -s http://microbot. | grep hostname
 <p class="centered">Container hostname: microbot-1855935831-fqwjp</p>

Running this multiple times will show you different container hostnames as you get load balanced between one of those 5 new instances.


Similar to OpenStack, conjure-up combined with LXD makes it very easy to deploy rather complex big software, very easily and in a very self-contained way.

This isn't the kind of setup you'd want to run in a production environment, but it's great for developers, demos and whoever wants to try those technologies without investing into hardware.

Extra information

The conjure-up website can be found at: http://conjure-up.io
The Juju website can be found at: http://www.ubuntu.com/cloud/juju

The main LXD website is at: https://linuxcontainers.org/lxd
Development happens on Github at: https://github.com/lxc/lxd
Mailing-list support happens on: https://lists.linuxcontainers.org
IRC support happens in: #lxcontainers on irc.freenode.net
Try LXD online: https://linuxcontainers.org/lxd/try-it

13 Jan 2017 10:35am GMT

10 Jan 2017

feedPlanet Ubuntu

Jorge Castro: Fresh Kubernetes documentation available now

Over the past few months our team has been working real hard on the Canonical Distribution of Kubernetes. This is a pure-upstream distribution of k8s with our community's operational expertise bundled in.

It means that we can use one set of operational code to get the same deployment on GCE, AWS, Azure, Joyent, OpenStack, and Bare Metal.

Like most young distributed systems, Kubernetes isn't exactly famous for it's ease of use, though there has been tremendous progress over the past 12 months. Our documentation on Kubernetes was nearly non-existent and it became obvious that we had to dive in there and bust it out. I've spent some time fixing it up and it's been recently merged.

You can find the Official Ubuntu Guides in the "Create a cluster" section. We're taking what I call a "sig-cluster-lifecycle" approach to this documentation - the pages are organized into lifecycle topics based on what an operator would do. So "Backups", or "Upgrades" instead one big page with sections. This will allow us to grow each section based on the expertise we learn on k8s for that given task.

Over the past few months (and hopefully for Kubernetes 1.6) we will slowly be phasing out the documentation on our individual charm and layer pages to reduce duplication and move to a pure upstream workflow.

On behalf of our team we hope you enjoy Kubernetes, and if you're running into issues please let us know or you can find us in the Kubernetes slack channels.

10 Jan 2017 7:34pm GMT

The Fridge: Ubuntu Weekly Newsletter Issue 494

Welcome to the Ubuntu Weekly Newsletter. This is issue #494 for the week January 2 - 8, 2017, and the full version is available here.

In this issue we cover:

The issue of The Ubuntu Weekly Newsletter is brought to you by:

If you have a story idea for the Weekly Newsletter, join the Ubuntu News Team mailing list and submit it. Ideas can also be added to the wiki!

Except where otherwise noted, content in this issue is licensed under a Creative Commons Attribution 3.0 License BY SA Creative Commons License

10 Jan 2017 4:06pm GMT

09 Jan 2017

feedPlanet Ubuntu

Kubuntu General News: Plasma 5.8.4 and KDE Frameworks 5.8.0 now available in Backports for Kubuntu 16.04 and 16.10

The Kubuntu Team announces the availability of Plasma 5.8.4 and KDE Frameworks 5.8.0 on Kubuntu 16.04 (Xenial) and 16.10 (Yakkety) though our Backports PPA.

Plasma 5.8.4 Announcement:
How to get the update (in the commandline):

  1. sudo apt-add-repository ppa:kubuntu-ppa/backports
  2. sudo apt update
  3. sudo apt full-upgrade -y

If you have been testing this upgrade by using the backports-landing PPA, please remove it first before doing the upgrade to backports. Do this in the commandline:

sudo apt-add-repository --remove ppa:kubuntu-ppa/backports-landing

Please report any bugs you find on Launchpad (for packaging problems) and http://bugs.kde.org for bugs in KDE software.

09 Jan 2017 8:01pm GMT