====== Updating a Debian (or Ubuntu) template ======
[[http://wiki.openvz.org/Updating_Ubuntu_template]]
Create a container based on the template you want to update
vzctl create 1097 --ostemplate debian-5.0-i386-minimal --config vps.16
Specify an IP address and a nameserver, you can get the value of nameserver from your __/etc/resolv.conf__
vzctl set 1097 --hostname debian.dw.lan --save
vzctl set 1097 --ipadd 192.168.0.97 --save
vzctl set 1097 --nameserver 192.168.0.22 --save
vzctl set 1097 --userpasswd root:
Start the VE and check that Internet is working from inside your container
vzctl start 1097
vzctl exec 1097 ping -n -c 1 google.com
Enter the container
vzctl enter 1097
Set the correct timezone, choosing the right value (mine is Europe/Rome):
dpkg-reconfigure tzdata
===== Updating the Linux distribution =====
Make sure that your **/etc/apt/sources.list** contains the right links to the repositories.
Mine is Debian, so i've done this:
nano /etc/apt/sources.list
## Debian Stable (Lenny)
deb http://ftp.it.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.it.debian.org/debian/ lenny main contrib non-free
## security updates
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free
Update the apt package database and and install updates
apt-get update
One time i have got an error, related to gpg keys, after adjusting the **/etc/apt/sources.list**, so before proceed, i've done this
apt-get install debian-archive-keyring
Then again, and the problem vanished
apt-get update
Finally, install updates
apt-get -y upgrade
===== Cleanup the template =====
Cleanup unused log files, .bash_history etc, then exit from a container:
apt-get clean
rm -rf /var/lib/apt/lists/* # delete the entire cache
> /etc/resolv.conf
exit
Stop the container, remove its IP
vzctl stop 1097
vzctl set 1097 --ipdel all --save
Rename the existing template cache
mv /vz/template/cache/debian-5.0-i386-minimal.tar.gz{,-old}
Create a new tarball
vzctl mount 1097
cd /vz/root/1097
tar --numeric-owner -czf /vz/template/cache/debian-5.0-i386-minimal.tar.gz .
cd
Clean up
vzctl umount 1097
vzctl destroy 1097
rm -f /etc/vz/conf/1097.conf.destroyed
Compare the sizes of the old and the new template caches, the sizes should not differ much
ls -lh /vz/template/cache/debian-5.0-i386-minimal*
===== Test the just created template =====
Try to create and start container made from your new template
vzctl create 1097 --ostemplate debian-5.0-i386-minimal --config vps.16
vzctl set 1097 --ipadd 192.168.0.97 --save
vzctl start 1097
vzctl enter 1097
Execute a few basic commands to check container is fine, examples are:
ps axf
dpkg -l
...
Finally, clean up the testing container:
vzctl stop 1097
vzctl destroy 1097
rm -f /etc/vz/conf/1097.conf.destroyed