Difference between revisions of "Creating a CentOS 5.0 Template"

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search
(VE, VPS -> container)
(Update formating)
Line 3: Line 3:
 
{{wikify}}
 
{{wikify}}
  
<ol style='margin-top:0in' start=1 type=1>
+
# Install a system (virtual or physical) with the default CentOS installation that you wish to package. This could be a minimal distro or the default distro or even something custom.
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
+
# Once the OS has been installed, you need to '''tar''' the contents of the OS.
    style='font-size:10.0pt;font-family:Tahoma'>Install a system (virtual or
+
## First, create a file called '''/tmp/exclude''' and add the following lines to it:
    physical) with the default <span class=SpellE>CentOS</span> installation
+
#: .bash_history
    that you wish to package.<span style='mso-spacerun:yes'>  </span>This
+
#: lost+found
    could be a minimal <span class=SpellE>distro</span> or the default <span
+
#: /dev/*
    class=SpellE>distro</span> or even something custom.</span></li>
+
#: /mnt/*
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
+
#:  /tmp/*
    style='font-size:10.0pt;font-family:Tahoma'>Once the OS has been
+
#: /proc/*
    installed, you need to <b style='mso-bidi-font-weight:normal'>tar</b> the
+
#: /sys/*
    contents of the OS.</span></li>
+
#: /usr/src/*
  <ol style='margin-top:0in' start=1 type=a>
+
## Now, tar the OS file up by typing: '''tar –czvf /tmp/centos-5.0-<ARCH>-<DISTRO>-image.tar.gz / –X #: /tmp/exclude''' where <'''ARCH'''> represents the system architecture ('''i386''' or
  <li class=MsoNormal style='mso-list:l0 level2 lfo1;tab-stops:list 1.0in'><span
+
#: '''x86_64''') and <'''DISTRO'''> represents the distribution (default, minimal, etc.).
      style='font-size:10.0pt;font-family:Tahoma'>First, create a file called <b
+
## Now transfer the file over to the OpenVZ server into '''/vz/template/cache''' folder.
      style='mso-bidi-font-weight:normal'>/<span class=SpellE>tmp</span>/exclude
+
# On the OpenVZ server create a “dummy” container by creating a folder called '''/vz/private/50'''
      </b>and add the following lines to it:</span></li>
+
#: and copying the '''/etc/vz/conf/ve-vps.basic.conf-sample''' to '''/etc/vz/conf/50.conf'''.
</ol>
+
#: '''NOTE''': 50 is the CTID for the container. You can choose any unused CTID on the OpenVZ server.
</ol>
+
# Now create a new folder called '''/vz/template/centos/5.0/<ARCH>/config''' again where
 
+
#: <'''ARCH'''> represents the system architecture.
<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+
# Create a file in the folder called rpm and add the following line:
style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;</span></p>
+
#: 43
 
+
# Create a file called '''yum.conf''' in the folder and add the following lines:
<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in'><span
+
#: [main]
style='font-size:10.0pt;font-family:"Courier New"'>.<span class=SpellE>bash_history</span></span></p>
+
#: 
 
+
#:  cachedir=/vz/template/centos/5.0/<ARCH>/yum-cache/
<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in'><span
+
#: 
class=SpellE><span style='font-size:10.0pt;font-family:"Courier New"'>lost+found</span></span><span
+
#:  reposdir=/dev/null
style='font-size:10.0pt;font-family:"Courier New"'></span></p>
+
#: 
 
+
#:  installonlypkgs=
<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in'><span
+
#:
style='font-size:10.0pt;font-family:"Courier New"'>/dev/*</span></p>
+
#: [centos5-base]
 
+
#:  name=CentOS 5 - <ARCH> - Base
<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in'><span
+
#: 
style='font-size:10.0pt;font-family:"Courier New"'>/<span class=SpellE>mnt</span>/*</span></p>
+
#: baseurl=http://mirror.centos.org/centos/5/os/<ARCH>/
 
+
#: 
<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in'><span
+
#:  enabled=1
style='font-size:10.0pt;font-family:"Courier New"'>/<span class=SpellE>tmp</span>/*</span></p>
+
#: 
 
+
#:  gpgcheck=1
<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in'><span
+
#:
style='font-size:10.0pt;font-family:"Courier New"'>/proc/*</span></p>
+
#: [centos5-updates-released]
 
+
#: 
<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in'><span
+
#: name=CentOS 5 - <ARCH> - Released Updates
style='font-size:10.0pt;font-family:"Courier New"'>/sys/*</span></p>
+
#: 
 
+
#:  baseurl=http://mirror.centos.org/centos/5/updates/<ARCH>/
<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in'><span
+
#:  
style='font-size:10.0pt;font-family:"Courier New"'>/<span class=SpellE>usr/src</span>/*</span></p>
+
#: enabled=1
 
+
#: 
<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+
#:  gpgcheck=1
style='font-size:10.0pt;font-family:Tahoma'>&nbsp;</span></p>
+
# Copy '''/etc/vz/dists/centos-4.conf''' to '''/etc/vz/dists/centos-5.0.conf'''.
 
+
# Change to the '''/vz/private/50''' folder and then run the command '''gunzip –dc /vz/template/cache/centos-5.0-<ARCH>-<DISTRO>-image.tar.gz | tar –xvf''' – to unpack the base image to the folder.
<ol style='margin-top:0in' start=2 type=1>
+
# Make sure you are in the '''/vz/private/50''' folder.
  <ol style='margin-top:0in' start=2 type=a>
+
# Edit '''etc/shadow''' and remove the replace the '''root''' password with !! instead of the hashed value.
  <li class=MsoNormal style='mso-list:l0 level2 lfo1;tab-stops:list 1.0in'><span
+
# Edit the '''etc/inittab''' file and comment out the lines that respawn '''/sbin/mingetty''' on '''tty1''' through '''tty6'''. Just put a # at the beginning of the line.
      style='font-size:10.0pt;font-family:Tahoma'>Now, <b style='mso-bidi-font-weight:
+
# Remove the '''etc/mtab''' file and then create a symbolic link by typing '''ln –s /proc/mounts etc/mtab'''.
      normal'>tar </b>the OS file up by typing:</span></li>
+
# Remove all of the lines from '''etc/fstab''' except for the line that mounts '''/dev/pts'''.
</ol>
+
# Edit '''etc/rc.d/rc.sysinit''' and comment out the line that starts '''/sbin/start_udev''' by placing a # at the beginning of the line.
</ol>
+
# Now create device nodes by typing:
 
+
#: mknod dev/ptmx c 5 2
<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+
#:  mkdir dev/pts
style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;</span></p>
+
#: /sbin/MAKEDEV –d /vz/private/50/dev ttyp ptyp
 
+
#: mknod dev/null c 1 3
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
+
#:  mknod dev/urandom c 1 9
font-family:"Courier New"'>tar –<span class=SpellE>czvf</span>
+
# Create the '''var/lock/rpm''' folder.
/tmp/centos-5.0-&lt;ARCH&gt;-&lt;DISTRO&gt;-<span class=SpellE>image.tar.gz</span>
+
# If you wish to disable IPv6, do the following:
/ –X<span style='mso-spacerun:yes'>  </span>/<span class=SpellE>tmp</span>/exclude</span></p>
+
## Edit '''etc/sysconfig/network''' and set '''NETWORKING_IPV6''' to '''no'''.
 
+
## Add the following lines to '''etc/modprobe.d/blacklist''':
<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+
#:  blacklist ipv6
style='font-size:10.0pt;font-family:"Courier New"'><span style='mso-tab-count:
+
#:  blacklist net-pf-10
2'>      </span></span></p>
+
# Disable any physical NICs by modifying the '''etc/sysconfig/network-scripts/ifcfg-ethX''' files (where '''X''' is the interface number starting from '''0''') and setting '''ONBOOT''' to '''no'''.
 
+
# Now you’re ready to start the template. Type '''vzctl start 50''' and wait for it to start.
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
+
# You can install additional packages into the container by typing '''vzyum 50 install <package>''' at the prompt where <'''package'''> represents the name of the software package you wish to install.
font-family:Tahoma'>where <b style='mso-bidi-font-weight:normal'>&lt;ARCH&gt;</b>
+
# Finally, you should turn off unnecessary services.
represents the system architecture (<b style='mso-bidi-font-weight:normal'>i386</b>
+
## Enter the container by typing '''vzctl enter 50'''.
or <b style='mso-bidi-font-weight:normal'>x86_64</b>) and <b style='mso-bidi-font-weight:
+
## View the services that are set to run at startup by typing '''chkconfig --list | grep 5:on'''.
normal'>&lt;DISTRO&gt;</b> represents the distribution (<b style='mso-bidi-font-weight:
+
## Disable any unwanted service by typing '''chkconfig --levels 2345 <service>''' off where <'''service'''> represents the service to disable.
normal'>default</b>, <b style='mso-bidi-font-weight:normal'>minimal</b>, etc.).</span></p>
+
#: Services that you can (and should) turn off without harm are acpid, apmd, kudzu, and  microcode_ctl.
 
+
# Exit the container by typing '''exit''' at the prompt.
<ol style='margin-top:0in' start=2 type=1>
+
# Stop the container by typing '''vzctl stop 50'''.
<ol style='margin-top:0in' start=3 type=a>
+
# Finally, package up the new template by typing '''tar –czvf /vz/template/cache/centos-5.0-<ARCH>-<DISTRO>.tar.gz'''.
  <li class=MsoNormal style='mso-list:l0 level2 lfo1;tab-stops:list 1.0in'><span
+
# The template is ready for use.
      style='font-size:10.0pt;font-family:Tahoma'>Now transfer the file over to
 
      the <span class=SpellE>OpenVZ</span> server into <b style='mso-bidi-font-weight:
 
      normal'>/<span class=SpellE>vz</span>/template/cache </b>folder.</span></li>
 
</ol>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>On the <span class=SpellE>OpenVZ</span>
 
    server create a “dummy” container by creating a folder called <b
 
    style='mso-bidi-font-weight:normal'>/vz/private/50</b> and copying the <b
 
    style='mso-bidi-font-weight:normal'>/<span class=SpellE>etc/vz/conf/ve-vps.basic.conf-sample</span></b>
 
    to <b style='mso-bidi-font-weight:normal'>/etc/vz/conf/50.conf</b>.</span></li>
 
</ol>
 
 
 
<p class=MsoNormal style='margin-left:.25in'><span style='font-size:10.0pt;
 
font-family:Tahoma'>&nbsp;</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><b style='mso-bidi-font-weight:
 
normal'><span style='font-size:8.0pt;font-family:Tahoma;color:red'>NOTE:</span></b></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><b style='mso-bidi-font-weight:
 
normal'><span style='font-size:8.0pt;font-family:Tahoma;color:red'>50</span></b><span
 
style='font-size:8.0pt;font-family:Tahoma;color:red'> is the CTID for the
 
container. You can choose any unused CTID on
 
the OpenVZ server.</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:8.0pt;
 
font-family:Tahoma'>&nbsp;</span></p>
 
 
 
<ol style='margin-top:0in' start=4 type=1>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Now create a new folder called
 
    <b style='mso-bidi-font-weight:normal'>/vz/template/centos/5.0/&lt;ARCH&gt;/<span
 
    class=SpellE>config</span></b> again where <b style='mso-bidi-font-weight:
 
    normal'>&lt;ARCH&gt;</b> represents the system architecture.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Create a file in the folder
 
    called <b style='mso-bidi-font-weight:normal'>rpm</b> and add the
 
    following line:</span></li>
 
</ol>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>&nbsp;</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>43</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>&nbsp;</span></p>
 
 
 
<ol style='margin-top:0in' start=6 type=1>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Create a file called <span
 
    class=SpellE><b style='mso-bidi-font-weight:normal'>yum.conf</b></span> in
 
    the folder and add the following lines:</span></li>
 
</ol>
 
 
 
<p class=MsoNormal style='margin-left:.25in'><span style='font-size:10.0pt;
 
font-family:Tahoma'>&nbsp;</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>[main]</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><span
 
style='font-size:10.0pt;font-family:"Courier New"'>cachedir</span></span><span
 
style='font-size:10.0pt;font-family:"Courier New"'>=/vz/template/centos/5.0/&lt;ARCH&gt;/yum-cache/</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><span
 
style='font-size:10.0pt;font-family:"Courier New"'>reposdir</span></span><span
 
style='font-size:10.0pt;font-family:"Courier New"'>=/dev/null</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><span
 
style='font-size:10.0pt;font-family:"Courier New"'>installonlypkgs</span></span><span
 
style='font-size:10.0pt;font-family:"Courier New"'>=''</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>&nbsp;</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>[centos5-base]</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>name=<span class=SpellE>CentOS</span> 5 - &lt;ARCH&gt;
 
- Base</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><span
 
style='font-size:10.0pt;font-family:"Courier New"'>baseurl</span></span><span
 
style='font-size:10.0pt;font-family:"Courier New"'>=http://mirror.centos.org/centos/5/os/&lt;ARCH&gt;/</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>enabled=1</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><span
 
style='font-size:10.0pt;font-family:"Courier New"'>gpgcheck</span></span><span
 
style='font-size:10.0pt;font-family:"Courier New"'>=1</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>&nbsp;</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>[centos5-updates-released]</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>name=<span class=SpellE>CentOS</span> 5 - &lt;ARCH&gt;
 
- Released Updates</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><span
 
style='font-size:10.0pt;font-family:"Courier New"'>baseurl</span></span><span
 
style='font-size:10.0pt;font-family:"Courier New"'>=http://mirror.centos.org/centos/5/updates/&lt;ARCH&gt;/</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>enabled=1</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><span
 
style='font-size:10.0pt;font-family:"Courier New"'>gpgcheck</span></span><span
 
style='font-size:10.0pt;font-family:"Courier New"'>=1</span></p>
 
 
 
<ol style='margin-top:0in' start=7 type=1>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Copy <b style='mso-bidi-font-weight:
 
    normal'>/etc/vz/dists/centos-4.conf</b> to <b style='mso-bidi-font-weight:
 
    normal'>/etc/vz/dists/centos-5.0.conf</b>.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Change to the <b
 
    style='mso-bidi-font-weight:normal'>/vz/private/50</b> folder and then run
 
    the command </span><span class=SpellE><span style='font-size:10.0pt;
 
    font-family:"Courier New"'>gunzip</span></span><span style='font-size:
 
    10.0pt;font-family:"Courier New"'> –dc
 
    /vz/template/cache/centos-5.0-&lt;ARCH&gt;-&lt;DISTRO&gt;-<span
 
    class=SpellE>image.tar.gz</span> | tar –<span class=SpellE>xvf</span> –<b
 
    style='mso-bidi-font-weight:normal'> </b></span><span style='font-size:
 
    10.0pt;font-family:Tahoma'>to unpack the base image to the folder.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Make sure you are in the <b
 
    style='mso-bidi-font-weight:normal'>/vz/private/50</b> folder.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Edit <b style='mso-bidi-font-weight:
 
    normal'>etc/shadow</b> and remove the replace the <b style='mso-bidi-font-weight:
 
    normal'>root</b> password with <b style='mso-bidi-font-weight:normal'>!!</b>
 
    instead of the hashed value.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Edit the <b style='mso-bidi-font-weight:
 
    normal'>etc/<span class=SpellE>inittab</span></b> file and comment out the
 
    lines that <span class=SpellE>respawn</span> <b style='mso-bidi-font-weight:
 
    normal'>/<span class=SpellE>sbin/mingetty</span></b> on <b
 
    style='mso-bidi-font-weight:normal'>tty1</b> through <b style='mso-bidi-font-weight:
 
    normal'>tty6</b>.<span style='mso-spacerun:yes'>  </span>Just put a <b
 
    style='mso-bidi-font-weight:normal'>#</b> at the beginning of the line.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Remove the <b
 
    style='mso-bidi-font-weight:normal'>etc/<span class=SpellE>mtab</span></b>
 
    file and then create a symbolic link by typing </span><span class=SpellE><span
 
    style='font-size:10.0pt;font-family:"Courier New"'>ln</span></span><span
 
    style='font-size:10.0pt;font-family:"Courier New"'> –s /proc/mounts etc/<span
 
    class=SpellE>mtab</span></span><span style='font-size:10.0pt;font-family:
 
    Tahoma'>.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Remove all of the lines from <b
 
    style='mso-bidi-font-weight:normal'>etc/<span class=SpellE>fstab</span></b>
 
    except for the line that mounts <b style='mso-bidi-font-weight:normal'>/dev/pts</b>.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Edit <b style='mso-bidi-font-weight:
 
    normal'>etc/<span class=SpellE>rc.d/rc.sysinit</span></b> and comment out
 
    the line that starts <b style='mso-bidi-font-weight:normal'>/<span
 
    class=SpellE>sbin/start_udev</span></b> by placing a <b style='mso-bidi-font-weight:
 
    normal'>#</b> at the beginning of the line.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Now create device nodes by
 
    typing:</span></li>
 
</ol>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>&nbsp;</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><span
 
style='font-size:10.0pt;font-family:"Courier New"'>mknod</span></span><span
 
style='font-size:10.0pt;font-family:"Courier New"'> dev/<span class=SpellE>ptmx</span>
 
c 5 2</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><span
 
style='font-size:10.0pt;font-family:"Courier New"'>mkdir</span></span><span
 
style='font-size:10.0pt;font-family:"Courier New"'> dev/pts</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>/<span class=SpellE>sbin</span>/MAKEDEV –d
 
/vz/private/50/dev <span class=SpellE>ttyp</span> <span class=SpellE>ptyp</span></span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><span
 
style='font-size:10.0pt;font-family:"Courier New"'>mknod</span></span><span
 
style='font-size:10.0pt;font-family:"Courier New"'> dev/null c 1 3</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><span
 
style='font-size:10.0pt;font-family:"Courier New"'>mknod</span></span><span
 
style='font-size:10.0pt;font-family:"Courier New"'> dev/<span class=SpellE>urandom</span>
 
c 1 9</span></p>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>&nbsp;</span></p>
 
 
 
<ol style='margin-top:0in' start=16 type=1>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Create the <span class=SpellE><b
 
    style='mso-bidi-font-weight:normal'>var</b></span><b style='mso-bidi-font-weight:
 
    normal'>/lock/rpm</b> folder.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>If you wish to disable IPv6,
 
    do the following:</span></li>
 
<ol style='margin-top:0in' start=1 type=a>
 
  <li class=MsoNormal style='mso-list:l0 level2 lfo1;tab-stops:list 1.0in'><span
 
      style='font-size:10.0pt;font-family:Tahoma'>Edit <b style='mso-bidi-font-weight:
 
      normal'>etc/<span class=SpellE>sysconfig</span>/network</b> and set <b
 
      style='mso-bidi-font-weight:normal'>NETWORKING_IPV6</b> to <b
 
      style='mso-bidi-font-weight:normal'>no</b>.</span></li>
 
  <li class=MsoNormal style='mso-list:l0 level2 lfo1;tab-stops:list 1.0in'><span
 
      style='font-size:10.0pt;font-family:Tahoma'>Add the following lines to <b
 
      style='mso-bidi-font-weight:normal'>etc/<span class=SpellE>modprobe.d</span>/blacklist</b>:</span></li>
 
</ol>
 
</ol>
 
 
 
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>&nbsp;</span></p>
 
 
 
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>blacklist ipv6</span></p>
 
 
 
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>blacklist net-pf-10</span></p>
 
 
 
<p class=MsoNormal style='margin-left:1.0in'><span style='font-size:10.0pt;
 
font-family:"Courier New"'>&nbsp;</span></p>
 
 
 
<ol style='margin-top:0in' start=18 type=1>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Disable any physical <span
 
    class=SpellE>NICs</span> by modifying the <span class=SpellE><b
 
    style='mso-bidi-font-weight:normal'>etc/sysconfig/network-scripts/ifcfg-ethX</b></span>
 
    files (where <b style='mso-bidi-font-weight:normal'>X</b> is the interface
 
    number starting from <b style='mso-bidi-font-weight:normal'>0</b>) and
 
    setting <b style='mso-bidi-font-weight:normal'>ONBOOT</b> to <b
 
    style='mso-bidi-font-weight:normal'>no</b>.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Now you’re ready to start the
 
    template.<span style='mso-spacerun:yes'>  </span>Type </span><span
 
    class=SpellE><span style='font-size:10.0pt;font-family:"Courier New"'>vzctl</span></span><span
 
    style='font-size:10.0pt;font-family:"Courier New"'> start 50</span><span
 
    style='font-size:10.0pt;font-family:Tahoma'> and wait for it to start.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>You can install additional
 
    packages into the container by typing</span><span style='font-size:10.0pt;
 
    font-family:"Courier New"'> <span class=SpellE>vzyum</span> 50 install
 
    &lt;package&gt;</span><span style='font-size:10.0pt;font-family:Tahoma'>
 
    at the prompt where <b style='mso-bidi-font-weight:normal'>&lt;package&gt;</b>
 
    represents the name of the software package you wish to install.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Finally, you should turn off
 
    unnecessary services.</span></li>
 
<ol style='margin-top:0in' start=1 type=a>
 
  <li class=MsoNormal style='mso-list:l0 level2 lfo1;tab-stops:list 1.0in'><span
 
      style='font-size:10.0pt;font-family:Tahoma'>Enter the container by typing </span><span
 
      class=SpellE><span style='font-size:10.0pt;font-family:"Courier New"'>vzctl</span></span><span
 
      style='font-size:10.0pt;font-family:"Courier New"'> enter 50</span><span
 
      style='font-size:10.0pt;font-family:Tahoma'>.</span></li>
 
  <li class=MsoNormal style='mso-list:l0 level2 lfo1;tab-stops:list 1.0in'><span
 
      style='font-size:10.0pt;font-family:Tahoma'>View the services that are
 
      set to run at startup by typing </span><span class=SpellE><span
 
      style='font-size:10.0pt;font-family:"Courier New"'>chkconfig</span></span><span
 
      style='font-size:10.0pt;font-family:"Courier New"'> --list | <span
 
      class=SpellE>grep</span> 5:on</span><span style='font-size:10.0pt;
 
      font-family:Tahoma'>.</span></li>
 
  <li class=MsoNormal style='mso-list:l0 level2 lfo1;tab-stops:list 1.0in'><span
 
      style='font-size:10.0pt;font-family:Tahoma'>Disable any unwanted service
 
      by typing </span><span class=SpellE><span style='font-size:10.0pt;
 
      font-family:"Courier New"'>chkconfig</span></span><span style='font-size:
 
      10.0pt;font-family:"Courier New"'> --levels 2345 &lt;service&gt; off</span><span
 
      style='font-size:10.0pt;font-family:Tahoma'> where <b style='mso-bidi-font-weight:
 
      normal'>&lt;service&gt;</b> represents the service to disable.</span></li>
 
</ol>
 
</ol>
 
 
 
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
 
font-family:Tahoma'>Services that you can (and should) turn off without harm
 
are <span class=SpellE><b style='mso-bidi-font-weight:normal'>acpid</b></span>,
 
<span class=SpellE><b style='mso-bidi-font-weight:normal'>apmd</b></span>, <b
 
style='mso-bidi-font-weight:normal'>kudzu</b>, and <span class=SpellE><b
 
style='mso-bidi-font-weight:normal'>microcode_ctl</b></span>.</span></p>
 
 
 
<ol style='margin-top:0in' start=22 type=1>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Exit the container by typing </span><span
 
    style='font-size:10.0pt;font-family:"Courier New"'>exit</span><span
 
    style='font-size:10.0pt;font-family:Tahoma'> at the prompt.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Stop the container by typing <span
 
    class=SpellE>vzctl</span> stop 50.</span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>Finally, package up the new
 
    template by typing </span><span style='font-size:10.0pt;font-family:"Courier New"'>tar
 
    –<span class=SpellE>czvf</span>
 
    /vz/template/cache/centos-5.0-&lt;ARCH&gt;-&lt;DISTRO&gt;.<span
 
    class=SpellE>tar.gz</span> .</span><span style='font-size:10.0pt;
 
    font-family:Tahoma'></span></li>
 
<li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><span
 
    style='font-size:10.0pt;font-family:Tahoma'>The template is ready for use.</span></li>
 
</ol>
 

Revision as of 18:52, 25 April 2008

Yellowpin.svg Note: this article is not formatted according to this Wiki standards. Please help reformatting it in a better way.
  1. Install a system (virtual or physical) with the default CentOS installation that you wish to package. This could be a minimal distro or the default distro or even something custom.
  2. Once the OS has been installed, you need to tar the contents of the OS.
    1. First, create a file called /tmp/exclude and add the following lines to it:
    .bash_history
    lost+found
    /dev/*
    /mnt/*
    /tmp/*
    /proc/*
    /sys/*
    /usr/src/*
    1. Now, tar the OS file up by typing: tar –czvf /tmp/centos-5.0-<ARCH>-<DISTRO>-image.tar.gz / –X #: /tmp/exclude where <ARCH> represents the system architecture (i386 or
    x86_64) and <DISTRO> represents the distribution (default, minimal, etc.).
    1. Now transfer the file over to the OpenVZ server into /vz/template/cache folder.
  3. On the OpenVZ server create a “dummy” container by creating a folder called /vz/private/50
    and copying the /etc/vz/conf/ve-vps.basic.conf-sample to /etc/vz/conf/50.conf.
    NOTE: 50 is the CTID for the container. You can choose any unused CTID on the OpenVZ server.
  4. Now create a new folder called /vz/template/centos/5.0/<ARCH>/config again where
    <ARCH> represents the system architecture.
  5. Create a file in the folder called rpm and add the following line:
    43
  6. Create a file called yum.conf in the folder and add the following lines:
    [main]
    cachedir=/vz/template/centos/5.0/<ARCH>/yum-cache/
    reposdir=/dev/null
    installonlypkgs=
    [centos5-base]
    name=CentOS 5 - <ARCH> - Base
    baseurl=http://mirror.centos.org/centos/5/os/<ARCH>/
    enabled=1
    gpgcheck=1
    [centos5-updates-released]
    name=CentOS 5 - <ARCH> - Released Updates
    baseurl=http://mirror.centos.org/centos/5/updates/<ARCH>/
    enabled=1
    gpgcheck=1
  7. Copy /etc/vz/dists/centos-4.conf to /etc/vz/dists/centos-5.0.conf.
  8. Change to the /vz/private/50 folder and then run the command gunzip –dc /vz/template/cache/centos-5.0-<ARCH>-<DISTRO>-image.tar.gz | tar –xvf – to unpack the base image to the folder.
  9. Make sure you are in the /vz/private/50 folder.
  10. Edit etc/shadow and remove the replace the root password with !! instead of the hashed value.
  11. Edit the etc/inittab file and comment out the lines that respawn /sbin/mingetty on tty1 through tty6. Just put a # at the beginning of the line.
  12. Remove the etc/mtab file and then create a symbolic link by typing ln –s /proc/mounts etc/mtab.
  13. Remove all of the lines from etc/fstab except for the line that mounts /dev/pts.
  14. Edit etc/rc.d/rc.sysinit and comment out the line that starts /sbin/start_udev by placing a # at the beginning of the line.
  15. Now create device nodes by typing:
    mknod dev/ptmx c 5 2
    mkdir dev/pts
    /sbin/MAKEDEV –d /vz/private/50/dev ttyp ptyp
    mknod dev/null c 1 3
    mknod dev/urandom c 1 9
  16. Create the var/lock/rpm folder.
  17. If you wish to disable IPv6, do the following:
    1. Edit etc/sysconfig/network and set NETWORKING_IPV6 to no.
    2. Add the following lines to etc/modprobe.d/blacklist:
    blacklist ipv6
    blacklist net-pf-10
  18. Disable any physical NICs by modifying the etc/sysconfig/network-scripts/ifcfg-ethX files (where X is the interface number starting from 0) and setting ONBOOT to no.
  19. Now you’re ready to start the template. Type vzctl start 50 and wait for it to start.
  20. You can install additional packages into the container by typing vzyum 50 install <package> at the prompt where <package> represents the name of the software package you wish to install.
  21. Finally, you should turn off unnecessary services.
    1. Enter the container by typing vzctl enter 50.
    2. View the services that are set to run at startup by typing chkconfig --list | grep 5:on.
    3. Disable any unwanted service by typing chkconfig --levels 2345 <service> off where <service> represents the service to disable.
    Services that you can (and should) turn off without harm are acpid, apmd, kudzu, and microcode_ctl.
  22. Exit the container by typing exit at the prompt.
  23. Stop the container by typing vzctl stop 50.
  24. Finally, package up the new template by typing tar –czvf /vz/template/cache/centos-5.0-<ARCH>-<DISTRO>.tar.gz.
  25. The template is ready for use.