Open main menu

OpenVZ Virtuozzo Containers Wiki β

Changes

Slackware template creation

289 bytes added, 08:54, 28 May 2011
Edit /etc/rc.d/rc.syslog
This page is about making a template cache for OpenVZ [[VEcontainer]] from Slackware linux.
(This method was used for creating the minimal cache from Slackware 10.2)
The method is basically the same as described in article [[Debian template creation]].
=== Downloading and installing Slackware ===
First you need to download Slackware linux from [http://www.slackware.org/getslack/ http://www.slackware.org/getslack/]. Then you have to [http://www.slackware.org/install/ install] it to some hardware you can spare while the cache creation process is going on. For [[VEcontainer]] creation it is recommended not to install any unnecessary software into the box you are making the cache from.
This means for a minimal Slackware 10.2 cache I have chosen only series A (<tt>Base Linux System</tt>) at the package series selection screen of Slackware Setup. Then '''expert''' prompting mode on the next screen. On the Series A package selection screen I chose the following packages:
* dcron
* devs
* e2fsprogs <i>- This is not really needed for a VEcontainer, but let him install it</i>
* elvis
* etc
After selecting these packages just install the kernel and lilo, you are ready to run Slackware!
=== Configuring Slackware for acting as a VE container ===
Now that you have a running minimal Slackware installation, You can begin to prepare it to be
a template for a [[VEcontainer]]. First you need some additional packages, 7 exactly:
{| class="wikitable"
</pre>
After these steps, you are ready to move your Slackware installation into a [[VEcontainer]].
=== Moving a Slackware installation into a VE container ===
I did it by compressing the whole filesystem into a tgz file and copying it to the host running OpenVZ.
Compressing it is easy:
<pre>
tar --numeric-owner -czf /slackware.tgz --exclude /slackware.tgz /
</pre>
But to copy it, you need to setup a network device on the slackware system (use <tt>ifconfig</tt> and <tt>ftp</tt>) or manually remove the hard drive containing the Slackware installation and copy the tgz file from there.
After you got the tgz file on the host, make a new directory into <tt>/vz/private</tt> with a new VEIDCTID, ''for example'' 777.
Uncompress the tgz file into this directory and remove the tgz.
<pre>
</pre>
== Preparing the new VE container ==
=== Creating VE container config ===
Now you need to create the configuration file for the [[VEcontainer]], 777.conf:
<pre>
</pre>
=== Getting the filesystem ready to run in a VE container ===
Now you need to make some minor alterations under the /vz/private/777 directory.
rm /vz/private/777/etc/ssh/*key*
</pre>
This will ensure that a unique ssh key is generated for every single [[VEcontainer]] at the first boot.
Edit ssh_config and sshd_config here if you want.
<pre>
rm /vz/private/777/etc/mtab
ln -s /proc/mounts /vz/private/777/etc/mtab /proc/mounts
</pre>
root:!:13305:0:::::
</pre>
This will disable the root login until the password changed with <tt>vzctl set VEID CTID --userpasswd root:xxx</tt>.
==== Edit /etc/rc.d/rc.S ====
/bin/rm -f /etc/mtab*
</pre>
This should be line 162(239 - slackware 13.1). This will forbid Slackware to delete our symlink at every reboot.
==== Edit /etc/rc.d/rc.syslog ====
These should be lines 11, 12, 15 and 21. This will prevent <tt>klogd</tt> (which is usually not needed) from starting at boot time.
Slackware 13.1 (12.0 and newest)<pre>chmod -x /vz/private/777/etc/rc.d/rc.syslog</pre> {{Note|if you are going to use iptables rules inside your Slackware VEs containers which will do logging (i.e. the ones with the <tt>LOG</tt> target), you should not disable <tt>klogd</tt>.}}
== Testing the new VE container and making a cache file ==
=== Testing the new VE container ===
To test the new [[VEcontainer]], simply start it:
<pre>
vzctl start 777
</pre>
If you did everything all right (and this article is correct) your new Slackware [[VEcontainer]] will boot.
If the VE container booted, and you can enter/ssh to it, then stop it:
<pre>
vzctl stop 777
=== Making a cache file ===
Now make a .tar.gz out of the [[VEcontainer]]:
<pre>
tar czf /vz/template/cache/slackware-10.2-i486-minimal.tar.gz /vz/private/777/
Anonymous user