Difference between revisions of "Fedora template update"
m (→Testing) |
m (VE->container) |
||
Line 1: | Line 1: | ||
This article describes the procedure of manual template update, using Fedora template as an example. | This article describes the procedure of manual template update, using Fedora template as an example. | ||
− | This is useful in the case you have some precreated template which is a bit old, and you want to create many | + | This is useful in the case you have some precreated template which is a bit old, and you want to create many [[container]]s based on it. To escape the updating of all those new [[container]]s right after their creation, it makes sense to update the template itself. |
− | The idea is simple: you create a temporary | + | The idea is simple: you create a temporary [[container]], start it, run the update cycle and then pack the results into a tarball. Some caution must be taken in order for this tarball to be clean though. |
− | The below instructions are for updating Fedora 7 template for PPC architecture, using | + | The below instructions are for updating Fedora 7 template for PPC architecture, using VEIDs 111 and 222 as temporary [[container]]s. Please substitute your own VEIDs and template names. |
− | == Creating/starting a temporary | + | == Creating/starting a temporary container == |
− | You should create a temporary | + | You should create a temporary [[container]] first. |
# vzctl create 111 --ostemplate fedora-7-ppc-minimal | # vzctl create 111 --ostemplate fedora-7-ppc-minimal | ||
Line 16: | Line 16: | ||
# vzctl set 111 --ipadd 10.0.0.111 --save | # vzctl set 111 --ipadd 10.0.0.111 --save | ||
− | Finally, start your new | + | Finally, start your new [[container]]: |
# vzctl start 111 | # vzctl start 111 | ||
− | == Updating a | + | == Updating a container == |
− | First, enter a | + | First, enter a [[container]]: |
# vzctl enter 111 | # vzctl enter 111 | ||
Line 42: | Line 42: | ||
== Clean up == | == Clean up == | ||
− | Сlean the yum repository inside a | + | Сlean the yum repository inside a [[container]] to minimize: |
# yum clean all | # yum clean all | ||
− | Еxit from a | + | Еxit from a [[container]] and stop it: |
# logout | # logout | ||
Line 51: | Line 51: | ||
# vzctl stop 111 | # vzctl stop 111 | ||
− | Remove the IP from the | + | Remove the IP from the [[container]]: |
# vzctl set 111 --ipdel all --save | # vzctl set 111 --ipdel all --save | ||
Line 74: | Line 74: | ||
The sizes should not differ much. | The sizes should not differ much. | ||
− | Try to create and start | + | Try to create and start [[container]] made from your new template: |
# vzctl create 222 --ostemplate fedora-7-ppc-minimal | # vzctl create 222 --ostemplate fedora-7-ppc-minimal | ||
# vzctl set 222 --ipadd 10.0.0.222 --save | # vzctl set 222 --ipadd 10.0.0.222 --save | ||
Line 80: | Line 80: | ||
# vzctl enter 222 | # vzctl enter 222 | ||
− | Now execute a few basic commands to check | + | Now execute a few basic commands to check [[container]] is fine. Examples are: ps ax, rpm -qa, etc. |
− | Finally, clean up the testing | + | Finally, clean up the testing [[container]]: |
# vzctl stop 222 | # vzctl stop 222 | ||
# vzctl destroy 222 | # vzctl destroy 222 |
Revision as of 11:12, 26 February 2008
This article describes the procedure of manual template update, using Fedora template as an example.
This is useful in the case you have some precreated template which is a bit old, and you want to create many containers based on it. To escape the updating of all those new containers right after their creation, it makes sense to update the template itself.
The idea is simple: you create a temporary container, start it, run the update cycle and then pack the results into a tarball. Some caution must be taken in order for this tarball to be clean though.
The below instructions are for updating Fedora 7 template for PPC architecture, using VEIDs 111 and 222 as temporary containers. Please substitute your own VEIDs and template names.
Contents
Creating/starting a temporary container
You should create a temporary container first.
# vzctl create 111 --ostemplate fedora-7-ppc-minimal
Next you should assign a proper IP address to it. This IP does not have to be public -- see Using NAT for VE with private IPs.
# vzctl set 111 --ipadd 10.0.0.111 --save
Finally, start your new container:
# vzctl start 111
Updating a container
First, enter a container:
# vzctl enter 111
Check that you can access Internet:
# ping -c 1 www.ru PING www.ru (194.87.0.50) 56(84) bytes of data. 64 bytes from www.ru (194.87.0.50): icmp_seq=1 ttl=56 time=1.92 ms --- www.ru ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.920/1.920/1.920/0.000 ms
Next, run the update procedure:
# yum -y update
As this can take a few minutes or even hours, this is good time to go make some coffee.
Clean up
Сlean the yum repository inside a container to minimize:
# yum clean all
Еxit from a container and stop it:
# logout exited from VE 111 # vzctl stop 111
Remove the IP from the container:
# vzctl set 111 --ipdel all --save
Packing a new template cache
Now, rename or remove the existing template cache:
# mv /vz/template/cache/fedora-7-ppc-minimal.tar.gz /vz/template/cache/fedora-7-ppc-minimal.tar.gz-old
Now create a new tarball:
# cd /vz/private/111 # tar czf /vz/template/cache/fedora-7-ppc-minimal.tar.gz .
Clean up:
# vzctl destroy 111
Testing
First, compare the sizes of the old and the new template caches:
# ls -lh /vz/template/cache/fedora-7-ppc-minimal* -rw-r--r-- 1 root root 99M 2007-11-13 18:11 /vz/template/cache/fedora-7-ppc-minimal.tar.gz -rw-r--r-- 1 root root 91M 2007-08-31 02:46 /vz/template/cache/fedora-7-ppc-minimal.tar.gz-old
The sizes should not differ much.
Try to create and start container made from your new template:
# vzctl create 222 --ostemplate fedora-7-ppc-minimal # vzctl set 222 --ipadd 10.0.0.222 --save # vzctl start 222 # vzctl enter 222
Now execute a few basic commands to check container is fine. Examples are: ps ax, rpm -qa, etc.
Finally, clean up the testing container:
# vzctl stop 222 # vzctl destroy 222 # rm /etc/vz/conf/222.conf.destroyed