Learning Openstack Networking Neutron

Just got this eBook ‘Learning Openstack Networking Neutron’, It brill to see this sort of knowledge based book on one of Openstack core components.

image

I will update this post in a couple of days and let all you know how I get on with the reading, as this is a subject close to my heart I have lots of expectations.

I am back with updates,

Day 1 reading:

I purchased this book online at http://www.packtpub,com for €22.44 and started reading right away, was very interested to see what the book covers as the is a area of Openstack that I have spent time digging into it’s  internals. The book consist of 67 pages in total with the first 5 for publishers intro, ect and the last 2 pages for index, this gives us about 60 pages of content, to me it seems a little lite but I will hold off judgement until I read the rest of the book.  You can check out a some of the book over on Google books using the following link,Google books,

http://books.google.ie/books?id=iXrKBAAAQBAJ&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false

Looking forward to getting through the rest of the book, will update again tomorrow.

What is a Hacker, a Developer or a Programmer

Presentation1 [Autosaved]

This question has being churning around in my mind for a while, so i decided to share my thoughts with you all, to do this I dusted of my old art pencil and did some drawings. My old school art teacher would be so proud ‘not’. Anyway back to the script, these are my thoughts from many years interacting with teams and understand what people do, please do not be offended if i have not captured this fully. The big question is, which one are you…..?

Docker 1.3 is out

Docker 1.3 is out and it’s time to upgrade and check out the new features. Lets get the upgrade or install out of the way before we look at the new features. To upgrade, this is what I did on my Ubuntu 14.04 desktop, first make sure you do not have any containers running, shut them down safely, then do the following,

sudo apt-get update
sudo apt-get remove --purge lxc-docker #Only do this is you have docker installed already.
sudo apt-get autoremove --purge  #Only do this if ypsou have docker install all ready.
sudo apt-get install lxc-docker #This will install docker

Now we have a working docker installed, lets do a quick check to make sure it is OK and working,

sudo service docker status 
This will return the process number if docker is running, if not you will need to start docker 'service docker start', make sure their is no errors. 
sudo docker version 
This will return the version of docker

We now good to go.................

Check out the following link from the guys at Docker,http://blog.docker.com/2014/10/docker-1-3-signed-images-process-injection-security-options-mac-shared-directories/

So lets have a quick look at what I like in this release, the big one for me is ‘digital signature verification‘, this is a much needed feature, but it is only a tech preview, so what dose this mean, it mean the feature is part implemented, at present only official containers from the official repo are signed and only warnings are given. it gives the ability to create a signed container and when it is pulled/downloaded by docker the signature will be validated. This is a step in the right direction and I can wait till we see this feature finished.

The next feature is a little handy one, if you have being developing with docker and using nsenter you can now do the same with ‘docker exec’ Container life cycle improvements, you can now use the new ‘docker create’ to create a container but not run it, at a later point you can use ‘docker start’ to run the container.

Their were some security features added, I have not got a chance to look at them and I will update this blog post later with some info.

Docker container configuration

Recently I was asked “what is the best way to present configuration to a docker container”, my initial answer was to use environment variables and depending on the application one could use a dynamic approach and use ETCD to hold the configuration and have the container software pull it’s configuration from ETCD and have the ability to watch for ETCD configuration changes and preform updates as required.  Since then I have being thinking hard to figure if their were other approaches to this problem, one that would work very well is creating a directory on the host, placing the configuration files in the directory and having the directory mounted in the container at run time. My initial reaction to this method was,  i did not like it, but the more I though about it I final concluded it is a valid approach and if the correct tooling was put in place, one could have a clean method of presenting any configuration to the container services at run time.

Lets do a quick example, let’s create a config directory in the hosts ‘tmp’ directory, create a config file and then run a docker container interactively and go to the docker/tmp/config directory and see our config file.

Lets create a directory on the host thta we can use as the volume in the container to hold our configuration

mkdir /tmp/config

Now lets create a quick config file in the /tmp/config directory so we can see it their when we go to the config directory in the container.

touch /tmp/config/config.conf

Now lets create a Ubuntu container with the the volume mounted

docker run -t -i -v /tmp/config:/tmp/config  ubuntu:14.04 /bin/bash

Now we are in the container, you can change directory to the /tmp/config and vitrify that the config directory is present and that you can see the config.conf file. You can monitor this file for changes inside the container and edit/write to this file form the host.

References

[1] This is a link to a previous post on etcd in a Docker container, this is a quick way to start playing with etcd. https://cloud-guy.net/2014/07/03/etcd-in-a-container/

[2] Etcd code on github : https://github.com/coreos/etcd

[3] Etcd overview: https://coreos.com/using-coreos/etcd/

[4] Etcd getting started: https://coreos.com/docs/distributed-configuration/getting-started-with-etcd/

Removing docker and reinstall

Today I had some issues with docker 1.2 and had to remove it and re-install, this fixed my problem. The issue was when I issued the command “docker run xxx” docker would fail to load shared libraries. To fix I used the following,

sudo apt-get remove --purge lxc-docker

sudo apt-get autoremove --purge

sudo apt-get install lxc-docker

Do not forget you need to have the correct repos added before the above will work, it assumes you have them added already as you are removing docker, if not and you wnat to install docker check out a previous post, https://cloud-guy.net/2014/09/24/upgrade-or-install-docker-1-2-0/.

Hope this helps others……………………..

 

Upgrade or Install Docker 1.2.0

Some time ago I posted on installing Docker 1.0, today I got a chance to Upgrade from 1.0 to 1.2.0, the upgrade was easy here is what I did, the machine already has Docker 1.0 installed,

$ wget -qO- https://get.docker.io/gpg | sudo apt-key add -
$ sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install lxc-docker

Check out the following link for lots of info on Docker 1.2.0 http://blog.docker.com/category/docker-releases/

Stuck in login loop (Ubuntu 13.10)

This morning I attempted to login into my dev machine by entering the password and pressing enter key. The screen would go black for a sec or two and then bring me back to the enter login screen again, I repeated this a couple of times. To fix this is easy, just press ctrl + alt + F2 to bring you into a console/terminal and login using you normal user name and password, enter ls -lah and you will see the the .Xauthority owner is root and is a member of the root group. You need to make .Xauthority part of you user name group and you also need to be the owner, this is easy, just run this chown username:username .Xauthority, press ctrl + alt + F7 to go back to the login screen and login and all should be good.

 

How it saves you some time…………………

 

 

Upgrade or install Docker 1.0

Docker 1.2.0 is out and you can follow link for a new blog post, https://cloud-guy.net/2014/09/24/upgrade-or-install-docker-1-2-0/


 

Today I got a chance to upgrade from version 0.10 to the production ready release of Docker 1.0. Here are the steps that I followed to upgrading my 13.04 Desktop machine, but this should work for most Ubuntu systems.

$ wget -qO- https://get.docker.io/gpg | sudo apt-key add -
$ sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install lxc-docker

Check out the following link for lots of info on Docker 1.0 http://blog.docker.com/2014/06/its-here-docker-1-0/.

Install Latest Go on Ubuntu

It can some times be hard to find a solution that work to installing the latest version of Go on your Ubuntu system. The difficulty is you may want the latest version of Go and this may not be available as a package for you Linux distro, to get around this you can install using the following method. You will need to visit the following page (https://code.google.com/p/go/wiki/Downloads?tm=2) to figure the latest versionof Go that you want to install, then follow these steps,

wget https://storage.googleapis.com/golang/go1.3.linux-amd64.tar.gz

tar -zxvf go1.2.2.linux-amd64.tar.gz

rm go1.2.2.linux-amd64.tar.gz

mv go /usr/local

echo “PATH=/usr/local/go/bin:$PATH”>>~/.profile

source ~/.profile

You may want to think about adding PATH  to .bashrc

echo “PATH=/usr/local/go/bin:$PATH”>>~/.bashrc

Have lots of GO fun………….