Customizzazione di un template OpenVz in Proxmox
| Attenzione questo articolo è ancora incompleto. Sentiti libero di contribuire cliccando sul tasto edit. |
Riferimenti
Every time I want to test some code or software I usually do it on a virtualized environment to keep it isolated from my main system and every time I setup a machine from scratch. I use Virtual Box when I am on the go but at home I have several single-purpose VMs running on Proxmox VE, a powerful open source virtualization platform, based on KVM and OpenVZ. Here is how to simplify the setup process creating a custom Debian-based OpenVZ template:
Create a regular OpenVZ Container having debian-6.0-standard_6.0-6_i386 as base.
With the VM up and running, log in and setup networking. In my case I am using DHCP, so I added the following lines to /etc/network/interfaces:
auto eth0 iface eth0 inet dhcp
and reseted the network stack with /etc/init.d/networking restart.
Update the system to install the latest patches:
apt-get update && apt-get upgrade
Make sure sudo and openssh-server are installed:
apt-get install sudo openssh-server
Create the default admin user, add it to the sudoer’s list and setup your ssh-key:
adduser USERNAME usermod -a -G sudo USERNAME mkdir /home/USERNAME/.ssh echo "YOURSSSHKEYHERE" > /home/USERNAME/.ssh/authorized_keys chown -R USERNAME:USERNAME /home/USERNAME/.ssh
Add PuppetLabs as a repository and install puppet:
echo -e "deb http://apt.puppetlabs.com/ squeeze main\ndeb-src http://apt.puppetlabs.com/ squeeze main" >> /etc/apt/sources.list.d/puppet.list apt-key adv --keyserver keyserver.ubuntu.com --recv 4BD6EC30 apt-get update apt-get install puppet
Cleanup!
apt-get --purge clean rm -f /etc/hostname cat /dev/null > /etc/resolv.conf
Let’s remove the current host ssh keys and create a script to auto generate them on the next boot.
rm -f /etc/ssh/ssh_host_* vi /etc/init.d/ssh_gen_host_keys
Paste the script, a modified version of the one shown on HowToForge:
#!/bin/sh ### BEGIN INIT INFO # Provides: Generates new ssh host keys on first boot # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Generates new ssh host keys on first boot # Description: Generates new ssh host keys on first boot ### END INIT INFO ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N "" ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa -N "" /etc/init.d/ssh restart insserv -r /etc/init.d/ssh_gen_host_keys rm -f \$0
After editing the file, make it executable and install it:
chmod a+x /etc/init.d/ssh_gen_host_keys insserv /etc/init.d/ssh_gen_host_keys
Done setting up the VM but don’t turn it off yet! Now take note of your VM ID (CTID) and ssh into Proxmox then run:
vzctl set CTID --ipdel all --save
You might want to tweak the /etc/network/interfaces now. Before continuing is a good idea to create an /tmp/excludes file with the following:
.bash_history lost+found /dev/* /mnt/* /tmp/* /proc/* /sys/* /usr/src/* /etc/ssh/ssh_host*
Stop the VM and change directory to the VM root:
vzctl stop CTID cd /var/lib/vz/private/CTID
Then, tar the directory:
tar --numeric-owner -czvf /var/lib/vz/template/cache/debian-6.0-YOURCUSTOMTEMPLATE\_6.0-6\_i386.tar.gz -X /tmp/excludes .
After that it will be available as a template for you to create new OpenVZ containers from. Please note that the template name should match one of the conf files on /etc/vz/dists (in your Proxmox box), otherwise you will have to write yourself your own.
This was heavily based on the OpenVZ Wiki, How to create a CentOS template and on Proxmox Forums.
That’s it!