Building A Virtual Server (VPS) With Debian 3.1 (Sarge) And OpenVZ - Page 3

3 Build Your Own Ubuntu OpenVZ Virtual Private Server Template

First install the debootstrap utility from Ubuntu. This allows us to bootstrap Debian Sarge and Ubuntu installations.

cd /tmp
dpkg -i debootstrap_0.3.3.0ubuntu3_all.deb

Now we bootstrap the Ubuntu installation. I use the VPS ID 110. You can use any ID, as long as it is unused on the server and > 100.

debootstrap --arch i386 dapper /var/lib/vz/private/110

Apply the basic configuration to the VPS:

vzctl set 110 --applyconfig vps.basic --save

Set the name of the template:

echo "OSTEMPLATE=ubuntu-6.06" >> /etc/vz/conf/110.conf

Set the IP and nameserver. If you get this warning: "Warning: configuration file for distribution ubuntu-6.06 not found default used", ignore it.

vzctl set 110 --ipadd --save
vzctl set 110 --nameserver --save
vzctl set 110 --numothersock 120 --save

Add some additional package sources to the sources.list of the VPS:

echo "deb dapper-updates main restricted" >> /var/lib/vz/private/110/etc/apt/sources.list
echo "deb dapper universe" >> /var/lib/vz/private/110/etc/apt/sources.list
echo "deb dapper-security main restricted" >> /var/lib/vz/private/110/etc/apt/sources.list
echo "deb dapper-security universe" >> /var/lib/vz/private/110/etc/apt/sources.list

Start the VPS:

vzctl start 110

Update the system:

vzctl exec 110 apt-get update
vzctl exec 110 apt-get -u upgrade
vzctl exec 110 apt-get install ssh libedit2 openssh-client openssh-server quota

Disable gettys on terminals:

vzctl exec 110 sed -i -e '/getty/d' /etc/inittab

Fix some mounts:

vzctl exec 110 rm -f /etc/mtab
vzctl exec 110 ln -s /proc/mounts /etc/mtab

Run apt-get clean to remove unnecessary packages:

vzctl exec 110 apt-get clean

Stop the VPS and remove the IP addresses:

vzctl set 110 --ipdel all --save
vzctl stop 110

Delete the SSH host keys and create a script thet generates new host keys on first boot of the VPS:

rm -f /var/lib/vz/private/110/etc/ssh/ssh_host_*
cat << EOF > /var/lib/vz/private/110/etc/rc2.d/S15ssh_gen_host_keys
ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N ''
ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa -N ''
rm -f \$0
chmod a+x /var/lib/vz/private/110/etc/rc2.d/S15ssh_gen_host_keys

Pack the VPS to make it easily installable:

cd /var/lib/vz/private/110
tar czf /var/lib/vz/template/cache/ubuntu-6.06-minimal.tar.gz .

Hint: The dot in the line above is part of the command! It reads ....tar.gz[space][dot]

Now we remove the VPS we used to setup the template:

vzctl destroy 110

To create an instance of our Ubuntu server template, you can use this command:

vzctl create 102 --ostemplate ubuntu-6.06-minimal --config vps.basic

and then follow the other steps described in chapter 2.

4 Links

All trademarks are the property of their respective owners. OpenVZ and Virtuozzo are trademarks of SWSoft.

Till Brehm

About Till Brehm

Over 20 years experience as Software Developer and Linux System Administrator. Till Brehm is the founder and lead developer of the ISPConfig Hosting Control Panel software (since 2000) and he founded HowtoForge in 2005 as a place to share Linux knowledge with other Linux enthusiasts.

Share this page:

Suggested articles

0 Comment(s)

Add comment


By: till