OpenVZ preparazione della cache di un OS template

openvz-logo Questo articolo descrive la procedura per la creazione della cache di un template di un sistema operativo. Si presume che OpenVZ sia già installato e funzionante sulla distribuzione GNU/Linux , i passi necessari per farlo sono documentati nell’ articolo precedente riguardante l’installazione rapida di OpenVZ.

Terminologia

Assicurarsi di comprendere i seguenti termini.

Un modello di sistema operativo (OS template) è composto da una serie di pacchetti di una certa distribuzione Linux utilizzati per popolare un container. Con OpenVZ, distribuzioni differenti possono stare sullo stesso computer, cosicché si possono adoperare diversi tipi OS template.

In un OS template ci sono programmi di sistema, le librerie e gli script necessari per avviare e gestire il sistema (container), così come alcune applicazioni di base e utility. Applicazioni come compilatori e server SQL di solito non sono inclusi in un OS template. Una cache di un OS template è un OS template installato in un contenitore e poi compresso in un archivio in formato gzip. Con l’uso di tali cache, un nuovo contenitore può essere creato in pochi minuti, se non secondi.

I metadati di un template sono un gruppo di file che contengono informazioni per creare un OS template a partire da una cache di un modello.

I metadati di un OS template contengono:

  • Elenco dei pacchetti che fanno questo OS template.
  • Locazioni dei repository dei pacchetti.
  • Script che devono essere eseguito nelle varie fasi di installazione del template.
  • Chiave o chiavi pubbliche GPG necessarie per verificare le firme dei pacchetti.
  • Ulteriori pacchetti specifici OpenVZ.

Internals

(Incompleta) Configurazione fondamentale per un template basato su CentOS 4:

* addons/vzdev è un elenco statico di più comunemente usato dalle voci /dev. Fornisce il pacchetto dev. Utilizza MAKEDEV.spec

* addons/MAKEDEV-3.3.13-1.3.swsoft è generato a partire da una copia di MAKEDEV-3.3.13 presente in Fedora Core 2. Utilizza MAKEDEV.spec che è una versione personalizzata per installare solo i dispositivi essenziali e dipendenti da vzdev

* dummy-centos-4 è un segnaposto (placeholder) per pacchetti del kernel, module-init-tools, modutils, mingetty, kernel-utils, ethtool, kernel-drm. Utilizza dummy.spec

* default.list, minimal.list, *.list sono liste di pacchetti per personalizzare il template. Devono contenere i pacchetti dummy-centos-4, vzdev, e MAKEDEV

* config/yum.conf.in modello per yum.conf con token sostituiti durante l’operazione di build.

* config/install-pre o install-post viene eseguito da cache-os il quale a sua volta viene eseguito da vzpkgcache quando si crea una cache del template.

* config/update-pre o update-post viene eseguito durante l’aggiornamento della cache di un modello.

* config/gpgkeys sono le chiavi per i pacchetti che devono essere memorizzati nella cache.

* config/rpm contains la versione di rpm installata.

* vztmpl.spec.in è un template per il pacchetto vztmpl.

* make.defs rappresenta le variabili comuni per il processo make.

Scaricare il pacchetto vztmpl-centos-4*.src.rpm. Installarlo. Modificarlo.

Per generare il pacchetto rpm con i metadati per l’OS template, eseguire “make rpms” all’interno della directory /usr/src/redhat/SOURCES/centos-4. Saranno necessari i pacchetti gcc, rpmbuild, createrepo.

Contributi, risorse aggiuntive

Usando i metadati degli OS template e il tool vzpkg si possono creare cache del OS template.

Le cache degli OS template possono essere create a partire dai metadati di OS template utilizzando vzpkg o altri strumenti.

Creazione di una cache per un OS template

tux-butterfly È possibile creare una cache di un OS template a partire dai metadati dei OS template e usando vzpkgcache direttamente sul computer dove è installato OpenVZ. Il processo è automatico e impiegherà da circa 10 minuti ad alcune ore a seconda della velocità della rete. Il risultato sarà una cache del template con pacchetti aggiornati.

Ad esempio il comando aggiorna  la cache del template con distribuzione Fedora Core 4:

# vzpkgcache fedora-core-4

Una volta ottenuta la cache è possibile installarla in un container. Più avanti viene spiegato in dettaglio il procedimento.

Installazione delle utility per la gestione dei template

È necessario installare alcuni pacchetti, per essere in grado di creare o aggiornare le cache degli OS template.

Usare YUM

# yum install vzpkg vzyum vzrpm43-python vzrpm44-python vzctl-lib

Usando il formato rpm

I pacchetti sono disponibili su http://openvz.org/download/template/utils/.  Sono necessari (in base al sistema operativo installato sul template) sia il pacchetto vzpkg sia vzyum, come almeno uno tra vzrpm43 e vzrpm44 comprese le loro controparti -python.

Installare questi applicativi utilizzando il comando rpm:

# rpm -ihv vzpkg*.rpm vzyum*.rpm vzrpm44*.rpm

Con Red Hat Enterprise Linux, per installare vzyum bisogna avere python-elementtree, python-sqlite, e python-urlgrabber. Questi pacchetti potrebbero richiedere ulteriori dipendenze da soddifare: per esempio, python-sqlite necessita di SQLite.

Installazione dei metadata di un OS template

Per creare una cache di un OS template, è necessario per ottenere i metadati giusti per i template scelti.

Usare YUM

Per vedere quali sono i modelli disponibili, si esegua

# yum search vztmpl

Per installare alcuni template, eseguire

# yum install vztmpl-XXX […]

Usare gli rpm

Scaricare i pacchetti scelti vztmpl-* da http://openvz.org/download/template/metadata/ e installarli:

# rpm -ihv vztmpl-*.rpm

Eseguire vzpkgcache

Eseguire l’utility vzpkgcache; vedere la pagina di man di vzpkgcache(8) per i ulteriori dettagli. Essa creerà o aggiornerà la cache di tutti i template per i quali esistono i corrispondenti metadati.

# vzpkgcache centos-4-i386-minimal

Alternativa: utilizzare la cache del template già creata

pingui In alternativa alla creazione di una cache utilizzando i metadati del template, è possibile utilizzare una cache del template già pronta scaricabile da http://openvz.org/download/template/cache.

I template giù pronti possono essere facilmente aggiornati seguendo queste istruzioni:

  1. creare un container temporaneo basato sul template
  2. aggiornare il container utilizzando strumenti specifici (yum, apt o simili) disponibile sul sistema operativo
  3. inserire il container in un nuovo template

Esempi di questa procedura sono descritte in dettaglio per template Ubuntu (http://wiki.openvz.org/Updating_Ubuntu_template), Debian (http://wiki.openvz.org/Updating_Debian_template) e Fedora (http://wiki.openvz.org/Fedora_template_update).

Al fine di utilizzare i file della cache di un template già pronto, scaricare i file compatibili con OS scelto e collocarli così come sono (non è necessario lo spacchettamento) in /VZ/template/cache.

NOTA: Se si utilizzano template già pronti per CentOS 4 e vuole installare software utilizzando vzyum, si incorrerà in un errore come questo:

[root@localhost tmp]# vzyum CTID install mypackage

[root@localhost tmp]# ERROR: No such OS template: install

Ciò può capitare anche con Fedora. Per risolvere questo problema, installare i giusti metadati del OS template sul computer, per esempio

# yum install vztmpl-centos-4

Passo successivo

I passi successivi sono descritti nell’articolo riguardante la creazione di un container. Prossimamente…

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *