Installation on CentOS
From Linux-VServer
Contents |
Install CentOS 5
My CentOS 5 installation is a DVD install with only the "Desktop - GNOME" group selected.
On restart, a number of questions (timezone/security level/etc) are asked. At this stage set the "SELinux" option to disabled. If you skip this step, then simply modify the /etc/sysconfig/selinux file and disable selinux from there. You will need to reboot before this takes effect, but its okay to wait until you have installed the kernel before doing this (just to save some time :)
Add the repository
In order to install the necessary packages, you will have to add the repository containing them to your yum configuration. Paste the following in /etc/yum.repos.d/dhozac-vserver.repo
[dhozac-vserver] name=Linux-VServer related packages for CentOS $releasever - $basearch baseurl=http://rpm.hozac.com/dhozac/centos/$releasever/vserver/$basearch gpgkey=http://rpm.hozac.com/conf/keys/RPM-DHOZAC-GPG-KEY
Update yum
Before you do anything else, update yum. If you don't, you'll have to sit through lots of "you're using a knackered version of yum. Wait 5 seconds" messages.
yum update yum
Which should pick the version from the dhozac repository.
Install the kernel
To install the kernel, run
yum install kernel
Double check the grub file to make sure it is the bootable kernel (/boot/grub/grub.conf). If all is okay we are ready to restart the server.
At this stage (before the reboot) I also modify the hosts sshd config file, so it doesn't listen to every interface on the server, which would block any guest's attempt to run sshd.
vi /etc/ssh/sshd_config
and add the line "ListenAddress 192.168.0.1"
Install util-vserver
To install util-vserver, run
yum install util-vserver{,-core,-lib,-sysv,-build}
Post installation steps
Make certain /proc entries visible
/etc/init.d/vprocunhide start
Install a guest
As root, try the following to test your installation (this example installs a CentOS 5 guest)
vserver testing01 build -m yum --context 4040 --hostname=test01.test.loc \ --interface eth0:192.168.101.101/255.255.0.0 -- -d centos5
yum will install the minimal packages now. If you see something like
/usr/lib/util-vserver/distributions/centos5/initpost: line 105: 3587 Killed $_VSERVER "$vserver" exec bash -c ': >/tmp/startwait' >&/dev/null
Don't worry, it's okay.
At this point you should be able to start and enter your vserver install. To start the guest do,
vserver testing01 start
And to enter the guest, do
vserver testing01 enter
To get back to the host, just exit the shell.
If you want to manage the packages inside the guest, you will have to install some package management programs as well as internalize the RPM database. This can be achieved by
vyum testing01 -- install yum vserver testing01 pkgmgmt internalize
Depending on your host distribution, you may also need to do
vserver testing01 exec bash -c "rm -f /var/lib/rpm/__db*; rpm --rebuilddb"
You'll know it's required if a simple rpm -qa inside the guest complains about a database version mismatch.
Optionally, the following may be run to increase the functionality of the guest:
vyum testing01 -- install yum vim-common vim-minimal vim-enhanced openssh-server openssh \ gcc gcc-c++ kernel-devel bison openssl-devel libtermcap-devel ncurses-devel doxygen \ curl-devel newt-devel mlocate lynx tar wget nmap bzip2 speex speex-devel unixODBC \ unixODBC-devel libtool-ltdl libtool-ltdl-devel mysql-connector-odbc mysql mysql-devel \ passwd mkdir /etc/vservers/testing01/apps/vunify vserver testing01 hashify
Enter the guest and run:
pwconv
which splits /etc/passwd into /etc/passwd and /etc/shadow.
Then remove any lines which contain 'pam_loginuid.so' from /etc/pam.d/sshd, /etc/pam.d/login and /etc/pam.d/remote.
Edit /etc/ssh/sshd_config and change the line '#ListenAddress 0.0.0.0' to 'ListenAddress w.x.y.z' (where w.x.y.z is the IP allocated to the guest)
Create /etc/resolv.conf with the appropriate details.
If all goes well you now have a working setup :)