Difference between revisions of "OS template cache preparation"
(→Alternative: use precreated template cache) |
(→Alternative: use precreated template cache) |
||
Line 86: | Line 86: | ||
Here is the "solution" I worked out : | Here is the "solution" I worked out : | ||
− | The new OSTemplate should be named "centos4-i386-[ASINGLEWORD].tar.gz", and in /vz/template/centos/4/i386/config you should copy the default. | + | The new OSTemplate should be named "centos4-i386-[ASINGLEWORD].tar.gz", and in /vz/template/centos/4/i386/config you should copy the default.list to [ASINGLEWORD].list. vzyum then works (for me!). I have tried to verify this by creating templates with [MULTIPLEWORDS], which fail, and by creating templates without a corresponding [ASINGLEWORLD].conf file, which also fail - indicating that using a single word seems to be important (no hyphens etc). Good luck. |
== Next step == | == Next step == |
Revision as of 12:10, 16 October 2008
This article describes the procedure of an OS template cache creation. It assumes you already have OpenVZ installed and running. The steps needed to achieve it are documented in the Quick installation document.
Contents
Terminology
Please make sure you understand the following terms.
<translate> An OS template is basically a set of packages from some Linux distribution used to populate a container. With OpenVZ, different distributions can co-exist on the same hardware box, so multiple OS templates can be available.
An OS template consists of system programs, libraries, and scripts needed to boot up and run the system (container), as well as some very basic applications and utilities. Applications like a compiler and an SQL server are usually not included into an OS template.
<translate>
Warning: The rest of this document is obsoleted and is kept here for historical purposes only. Template utilities (vzpkg/vzyum) are no longer supported. Use precreated templates. |
OS template metadata is a set of a few files containing the following information:
- List of packages that form this OS template
- Locations of package repositories
- Scripts needed to be executed on various stages of template installation
- Public GPG key(s) needed to check signatures of packages
- Additional OpenVZ-specific packages
Using OS template metadata and vzpkg tools, an OS template cache can be created.
<translate>
An OS template cache is an OS template installed into a container and then packed into a gzipped tarball. Using such a cache, a new container can be created in a matter of minutes, if not seconds.
OS template cache can either be created from OS template metadata using vzpkg tools, or by other means.
Creating an OS template cache
You can create an OS template cache using template utilities and OS template metadata right on your hardware node. The process is automated and will take from about 10 minutes to a few hours, depending on the network speed, and the result will be most up-to-date template cache.
Installing template utilities
You have to install a few packages in order to be able to create/update OS template cache(s).
Using yum
# yum install vzpkg vzyum vzrpm43-python vzrpm44-python vzctl-lib
Using rpm
Packages are available from Download » Templates » Utilities. You need both vzpkg and vzyum packages, as well as one or both vzrpm43/vzrpm44 (including their -python counterparts), depending on the OS templates being used.
Install these utilities using rpm:
# rpm -ihv vzpkg*.rpm vzyum*.rpm vzrpm44*.rpm
In Red Hat Enterprise Linux, to install vzyum you will need python-elementtree, python-sqlite, and python-urlgrabber. These packages might have dependencies of their own. For example, python-sqlite needs sqlite.
Installing OS template metadata
To create an OS template cache, you need to get the metadata for the chosen OS template(s).
Using yum
To see which templates are available, run
# yum search vztmpl
To install some of the templates, run
# yum install vztmpl-XXX [...]
Using rpm
Get the chosen vztmpl-* packages from Downloads » Templates » Metadata (or directly from download.openvz.org/template/metadata or one of the mirrors and install them:
# rpm -ihv vztmpl-*.rpm
Running vzpkgcache
Run the vzpkgcache utility; see the vzpkgcache(8) man page for details. It will create or update the caches of all the templates for which the corresponding metadata exist.
# vzpkgcache centos-4-i386-minimal
Alternative: use precreated template cache
As an alternative to creating a cache using template metadata, you can use precreated template cache taken from Downloads » Templates » Precreated, or directly from download.openvz.org/template/precreated, or from one of the mirrors.
Precreated templates can be easily updated using the following algorithm:
- create temporary container based on template
- update container using OS-specific tools (yum, apt or similar)
- pack container as a new template
Examples of this procedure are described in details at Updating Ubuntu template, Updating Debian template, Fedora template update
In order to use precreated template cache files, download files for chosen OS distributions and place them as-is (no unpacking needed) to the /vz/template/cache directory.
NOTE: If you use precreated CentOS-4 templates and wish to install software using vzyum, you will probably run into error like this:
[root@localhost tmp]# vzyum CTID install mypackage [root@localhost tmp]# ERROR: No such OS template: install
This might apply to Fedora also. To fix this problem, install the appropriate OS template metadata on the OpenVZ host, for example
yum install vztmpl-centos-4
[Unverified note] : After creating a new OSTemplate cache called "centos4-i386-[ASINGLEWORD].tar.gz from a Container (on which vzyum worked) based on centos4-i386-default.tar.gz, vzyum failed to work (showing "No such OS template: install").
Here is the "solution" I worked out : The new OSTemplate should be named "centos4-i386-[ASINGLEWORD].tar.gz", and in /vz/template/centos/4/i386/config you should copy the default.list to [ASINGLEWORD].list. vzyum then works (for me!). I have tried to verify this by creating templates with [MULTIPLEWORDS], which fail, and by creating templates without a corresponding [ASINGLEWORLD].conf file, which also fail - indicating that using a single word seems to be important (no hyphens etc). Good luck.
Next step
Follow on to the container creation article.