Smoothwall Firewall project

Showing posts with label centos. Show all posts
Showing posts with label centos. Show all posts

Thursday, 11 June 2015

VM created by boot2docker init does not have DNS set up correctly - heres how to fix it

I came across this problem while setting up Docker on my OSX environment , and after searching the web , I found a method that works well, and cures the problem. Basically once the Virtualbox VM is created you need to edit the network adapter drivers and set them to "PCNET-FAST III" instead of the paravirtualised drivers. You need to do both adapters, and then restart boot2docker. You will notice that you get the correct settings now in your /etc/resolv.conf file. This was annoying me, and meant I had to reset the settings in the above file everytime I start docker - which is not ideal. Hope this saves you some time.

Sunday, 31 August 2014

Using Docker to run rtorrent to reduce your servers resource requirements



Let me state early and clearly , any one who thinks Docker is a new technology, knows nothing about IT and even less about virtualisation. So if some smartalec in your office starts spouting about this new technology, take them down a peg or two with a few links to Solaris containers, OpenVZ or LXC.

What the Docker team have done extremely well, is make these ancient technologies very accessible and very easy to use, with a well defined tool set and API. This they must be highly praised for.

In the words of Einstein however, they work on the shoulders of giants, who did a lot of the heavy lifting, and let us all not forget this.

I have been using containers for years, and we worked on a very successful cloud at Nokia using OpenVZ, where we built our own tools.

So I thought I would give Docker a spin on one of my cloud servers and just kick the tyres to start. I picked an application I use a lot for downloading Linux ISO's so it seemed a good choice. It was very straight forward indeed.

The host operating system was CentOS 6.5 - which I'm growing less fond of as each week passes, as in the fast moving cloud space, Ubuntu is simply better. It was installed however, and I couldn't be bothered to change it. You need to enable the EPEL repository and install docker with yum.

I decided to download and use the userland tools of a Docker Ubuntu image - but whatever image you choose - the host kernel is the one that will be used. This is to do with the historically well thought out ABI built into the Linux kernel that allows this all to work.



Once the image was retrieved from the Docker registry - I fired up a container with Ubuntu 14.04 tools and installed screen, rtorrent , vim and htop.

I always run rtorrent with screen so I can just leave it running and come back to it when required. Also importantly - when starting your container use /bin/bash so you can have an interactive session with it to be able to go back and check your screen/rtorrent session. A command like the following will do.

docker run -i -t my-ubuntu-image /bin/bash

Be care however when you want to exit this container , DON'T type exit but CTRL-p, CTRL-q , so everything keeps running and you can reattach to the container when you wish to check on progress.

This uses significantly less resources than spinning up a KVM virtual image to do the same job, as it uses the resources of the host system that are already running.

I have deliberately not put all the commands need to do this here , as the Docker documentation is good and very clear, so duplication is pointless




Wednesday, 30 April 2014

Problem loading/starting a KVM virtual machine on a CentOS 6.5 host that has SELINUX disabled


If you have recently built a KVM host for all your virtual machines and left SELINUX enabled, then all will be well, but what happens when you turn that setting off. Well you will end up with VM's that won't load with the error message

error: Failed to start domain Ubuntu1404
error: unsupported configuration: Unable to find security driver for label selinux


It is easy to fix , use the following command and just remove the seclabel section on the virtual machine domain XML - virsh edit Ubuntu1404

# virsh edit Ubuntu1404
...
  <;seclabel type='dynamic' model='selinux' relabel='yes'>;
    <label>system_u:system_r:svirt_t:s0:c95,c664</label>
    <imagelabel>system_u:object_r:svirt_image_t:s0:c95,c664</imagelabel>
  </seclabel>  

Once you have done that, the domains will load as normal.

Make sure if you have backup's of the domain XML, they are also changed, as I have found that they will over write the domain if your not careful

Check in /etc/libvirt/qemu to make sure the changes have happen, and the XML has been updated.

Thursday, 3 April 2014

Fixing a problem with VMware vcloud when putting a Virtual Machine back into the cloud Catalog




If you use vcloud, then I'm sure you have pushed fully patched and configured virtual machines back into the catalog as gold masters many times. If you have customised scripts, then you may or may not have come across this problem.

However yesterday, I came across a problem where the custom script settings within vcloud version 5.5 were not working, and the init scripts were not be run when you created a new vapp. This is a setting that tells the VM, if they have been run or not

It turns out the code for pushing VM's back into the catalog was not resetting the static file needed, to tell the init scripts to run correctly. If you look in .customisation in roots home directory, you can see the file it is looking for.

So , the work around - after much digging around in the code to find the file that VMware tools were looking for - is as follows

On a Linux system just type the following.

touch /.guest-customisation-post-reboot-pending


Once this file is in place, shutdown your VM, copy it back to the catalog, and all will be fine on the next start - it will run your desired init scripts as you wanted in the first place ;-)

Hope this saves you some time.

Wednesday, 15 August 2012

Using puppet with Virtualbox to speed up client additions install


One of the first things you need to do when you create a new VM is install the client additions code, which offers enhanced networking,screen sizing, cut & paste and general host/client integration. With Centos 6.3 Live CD installs , several of the needed rpm packages that allow the install are missing.

I have a puppet master installed and configured - which is beyond the scope of this post - but if you need help doing that, then just buy or download the Pro Puppet book, which covers this topic very clearly for any operating system.

Pro Puppet book

Make sure every machine can resolve all DNS entries properly , either with a DNS server or by hosts files - if you must. Every machine needs to resolve puppet.mynetwork.com and puppet.

You also need to install ruby , ruby-libs ,ruby-shadow , puppet and facter or you won't be able to connect to the puppet master in the first place. You can do this as part of your post-install kickstart or manually. You will also need to add the Fedora mainatained EPEL repo to get the latest versions of these.

The important elements that you need to install are make, gcc and kernel-devel and I also always add vim.

You need to define each of these in the modules sections under /etc/puppet/modules  on the puppet master with their own directory structure of:

/etc/puppet/modules/make/files
/etc/puppet/modules/make/manifests
/etc/puppet/modules/make/templates

Within the manifests directory you need to add an init.pp, and for vim it will look like this:


class vim {
package { vim-enhanced:
ensure => present,
}
}


You can obviously do a lot more in these files, but this is just to show what is needed for this task.

You also need to make sure you include these modules in the node.pp file in the /etc/puppet/manifests directory. Like this:


node /^testmac\d+\.mynetwork\.com/ {
        include vim
        include make
        include kernel-devel
        include gcc
}

The guest server in my environment follows this naming scheme and the regular expressions allow you to have as many as you like.

To connect your new VM  to the puppetmaster you can run the following command and make sure that  the certificate is allowed on the server:

puppet agent --server=puppet.mynetwork.com --no-daemonize --verbose

Once the client server has the cert's installed correctly, then run this command again to auto install all the rpms needed for you to install the client additions. The client additions can be installed from the GUI or the command line, which ever you prefer.

You can now also manage all your VM's with puppet , and make your virtual dev/test environment a lot easier to manage.


Monday, 5 December 2011

How to add another hard disk to your Xen virtual machine




If like me you have many Xen virtual machines that have been running for a while, you will likely come across the problem of having to increase the disk space, as the services or jobs the virtual machine offers over time changes.

Now you could increase the size of the existing disk, but I always feel that offers a level of risk, which with adding a new disk and using LVM or a new mount goes away.

Ok, so firstly we need to create a new virtual disk on the physical harddisk with the following command:

dd if=/dev/zero of=vm01-disk2.img bs=1G count=50

This will give us 50GB of new space. You can of course change the size to what ever you require, if your physical disk space will allow it.

Then we need to edit the Xen virtual machine configuration file and add in the new disk.

On my virtual machine host this is in /etc/xen/vm01

The line that needs to be altered is obviously the disk line, like so

disk = [ "tap:aio:/opt/xendisks/vm01.img,xvda,w",\
"tap:aio:/opt/xendisks/vm01-disk2.img,xvdb,w" ]


NB Notice the slash which allows the configuration line to expand over two lines in the configuration file.

Once you have done this, you can use the virsh and xm commands to restart the virtual machine , so that the new disk is available inside the virtual machine.

Once your VM has re-booted, you will notice another disk, which you can then either add to your LVM configuration, or just format and mount in a new directory. Here is my new mount as an example.

/dev/xvdb 50G 19G 29G 39% /opt/tomcat

Thursday, 30 June 2011

Using rtorrent on a remote Centos server for 24/7 downloads




As I'm sure you all know a lot of information is passed around the Web using bittorrent. Most of the clients have a nice GUI front end that allow you to easily grab the torrent files and start downloading.

What if you don't have a GUI on the machine you wish to use, or what if this is to be a 24/7 service for you. Well Linux as always has solutions, and one of those is a program called rtorrent. If you only like flashy interfaces this is not for you, but it works perfectly, and is very reliable.

I use a Centos 5.6 virtual server in the cloud for all sorts of uses, like a socks proxy and an SSL endpoint, and this is where I wanted to run the client. This machine is not very powerful, so you don't need to worry on that score. There are many Linux virtual machines you can obtain these days, for not a great deal of money.

Firstly, you need to visit this web site and download three RPM's.
Site for RPMS

libsigc++20-2.0.17-1.el5.rf.x86_64.rpm
libtorrent-0.12.6-1.el5.rf.x86_64.rpm
rtorrent-0.8.6-2.el5.rf.x86_64.rpm

Now, depending on how you configured your machine, there may be other dependencies, so check when you install these as follows

rpm -ivh *.rpm

Once this is done, I would then also make sure that the "screen" application is installed, as this will allow you to start rtorrent on the remote server, and re-connect to it when you desire. Spend a few moments looking at "screen" commands on the web to understand how it fits together - like here.

Using Screen

So now, I run screen and then I run rtorrent.

Once rtorrent is loaded, read this web page for an excellent quick guide to using the application:

How to use rtorrent as pro

Once you have your torrent running, you can detach from your screen session, with the CTRL-A d command. You can now logout of remote server, and all is still running.

To re-connect, you just login to the remote server again, and then run screen -r, and you will be back looking at rtorrent happily running.

This is very useful for downloading Linux ISO distribution files etc.

Friday, 24 April 2009

Centos 5 is an excellent Xen virtualization enterprise distribution

I had need to set up a Xen virtual server recently , and wanted to use the Redhat Enterprise 5 series to do some testing. Unfortunately these days, you only get 30 days update trial support so I decide to use a binary compatible distro instead and I picked on Centos. There are a few, but I have always had the best success with Centos, so why change a winning combination.

This has been around for a while now, and has been working hard to stay with the Redhat releases, and are only a month or two behind them when released. This is really a none issue for business users, as being at the cutting edge is exactly where they don't want to be.

I installed it on an AMD dual core X2 powered server, with 6GB of RAM and 5TB of disk space, which acts as my virtual testing server. As a virtual server it is not that large these days, but it allows me to run several virtual machines with ease.

The anaconda install process detected everything, and the for those people who are used to Fedora or Redhat , the process is identical (not surprising), with just a change of art work. It is a real credit here to Redhat for being a real community player and putting their source code out there for other projects to do this, and the Centos team for taking the time and effort to implement it. Just make sure you select the virtualize section when picking which applications to install on the server.
in
The new tools for managing both para-virtualized and full virtualized machines with Centos, using libvirt, worked without a single hitch, and I had an Ubuntu test virtual server up and running in literally minutes. The new GUI virtualization management tool works well. It is most definitely not a VMware virtual center or the Citrix Xen Enterprise management tools, but then it is free and for a simple virtual setup works well.

The performance was very good on this test server, and the Xen implementation - 3.0.3 - in the 5.2 release worked flawlessly.

If you are looking to build a virtual server for home or the office, then this distribution should be on your short list as it offers full functionality without the costs. You of course don't get the great technical support that Redhat offers, but the Centos community forums I looked at were full of quality answers, and anyone with a good background in IT infrastructure should not have any issues, unless you are a paper MCSE of course ;-)