Erstellung eines SLES10 Repositories zum Verwenden des SLES10 Templates in Virtuozzo 3

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird.
Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar.

Virtuozzo 3 für Linux nutzt sogenannte EZ Templates als Basis für Gastsysteme. Die EZ Templates, die bei Parallels unter https://www.parallels.com/products/virtuozzo/templates/catalog/ bezogen werden können, enthalten allerdings nur Metadaten. In diesen Metadaten ist vermerkt, wo die entsprechenden .rpm bzw. .deb Packages für ein Betriebssystem bezogen werden können. Im Normalfall verweisen diese Metadaten auf öffentlich zugängliche Mirrors der Linux Distributionen.

Für Enterprise Distributionen gibt es keine derartigen öffentlich zugängliche Mirrors. Dieser Artikel beschreibt die notwendigen Schritte beim Einsatz von SLES10 in einem Gastsystem. Dabei wird beschrieben wie ein solcher Mirror selbst erstellt werden kann. Die beschrieben Schritte basieren auf den Informationen aus dem Virtuozzo Installation Guide[1].

Ausgangssituation

In diesem Beispiel soll auf einem 2 HE Intel SR2500 Cluster (der Virtuozzo 3 in der 64 Bit Variante enthält) ein SLES10 in der 64 Bit Version in einem Gastsystem verwendet werden.

Dazu wird folgendes EZ Template von Parallels genützt:

Repository einrichten

Damit das SLES10 Template in Virtuozzo verwendet werden kann, müssen die .rpm-Packages von SLES10 in einem yum-kompatiblen Repository Server bereitgestellt werden.

Repository Server vorbereiten

Als Repository Server dient in diesem Beispiel ein Virtuozzo Gastsystem mit CentOS 4. In diesem Beispiel ist das der VE mit der VEID 101 und die IP Adresse 192.168.1.153 (falls Sie eine andere VEID bzw. IP Adresse verwenden passen Sie die Werte bei den folgenden Befehlen in der Anleitung entsprechend an):

[root@sr2500test-node1 ~]# vzlist 
      VEID      NPROC STATUS    IP_ADDR         HOSTNAME                        
         1         45 running   192.168.255.3   localhost                       
       101         11 running   192.168.1.153   vps.thomas-krenn.com            
[root@sr2500test-node1 ~]#

Im VE 101 werden ein Webserver sowie das Tool createrepo und das Paket python-urlgrabber benötigt. Diese drei Komponenten werden wie folgt vom Basissystem aus installiert:

[root@sr2500test-node1 ~]# vzpkg install 101 -p httpsd
[root@sr2500test-node1 ~]# vzpkg install 101 -p createrepo
[root@sr2500test-node1 ~]# vzpkg install 101 -p python-urlgrabber

SLES10 rpm Pakete einspielen

Nun werden die rpm Pakete von SLES10 eingespielt. Diese werden von einem aktuellen SLES10 SP2 ISO Image bezogen. Kopieren Sie dazu das ISO Image SLES-10-SP2-DVD-x86_64-GM-DVD1.iso nach /root/ auf das Basissystem des aktiven Knotens. Anschließend mounten Sie das ISO Image:

[root@sr2500test-node1 ~]# mount -o loop /root/SLES-10-SP2-DVD-x86_64-GM-DVD1.iso /mnt

Nun erstellen Sie ein Verzeichnis für die rpm Pakete und kopieren diese dorthin:

[root@sr2500test-node1 ~]# mkdir -p /vz/root/101/var/www/html/download/suse/es10
[root@sr2500test-node1 ~]# mkdir -p /vz/root/101/var/www/html/download/suse/es10-updates
[root@sr2500test-node1 ~]# cp -a /mnt/suse/i586 /vz/root/101/var/www/html/download/suse/es10/
[root@sr2500test-node1 ~]# cp -a /mnt/suse/noarch /vz/root/101/var/www/html/download/suse/es10/
[root@sr2500test-node1 ~]# cp -a /mnt/suse/x86_64 /vz/root/101/var/www/html/download/suse/es10/

Das ISO Image können Sie nun wieder unmounten:

[root@sr2500test-node1 ~]# umount /mnt

Repository Metadaten erstellen

In diesem Schritt werden die Metadaten für das Repository erstellt. Dieser Schritt muss im Gastsystem (hier VE 101) durchgeführt werden. Sie können sich dazu entweder per SSH in das Gastsystem verbinden oder so wie hier gezeigt mittels vzctl enter vom Basissystem in das Gastsystem wechseln:

[root@sr2500test-node1 ~]# vzctl enter 101
entered into VE 101
-bash-3.00# createrepo /var/www/html/download/suse/es10
2339/2339 - x86_64/zypper-0.6.104-0.3.x86_64.rpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata
-bash-3.00# createrepo /var/www/html/download/suse/es10-updates 

Saving Primary metadata
Saving file lists metadata
Saving other metadata
-bash-3.00# 

Erstellen der Mirrorlist Dateien

Virtuozzo EZ Templates verwenden sogenannte Mirrorlisten. Dies ermöglicht die Konfiguration von mehreren gleichwertigen Repositories. In diesem Beispiel reicht ein einzelner Mirror aus, die Mirrorlisten enthalten also nur einen Eintrag.

Die Listen werden wie folgt am Basissystem erstellt:

[root@sr2500test-node1 ~]# mkdir -p /vz/root/101/var/www/html/download/mirrors
[root@sr2500test-node1 ~]# echo "https://192.168.1.153/download/suse/es10/" > /vz/root/101/var/www/html/download/mirrors/suse-es10
[root@sr2500test-node1 ~]# echo "https://192.168.1.153/download/suse/es10-updates/" > /vz/root/101/var/www/html/download/mirrors/updates-released-sles10

vztt Konfiguration anpassen

Damit das EZ Template die Mirrorlisten finden, muss in der Datei /etc/vztt/vztt.conf die Variable SLES_SERVER gesetzt werden.

In der Standardkonfiguration enthält /etc/vztt/vztt.conf nur einen auskommentieren Eintrag dazu. Dies kann wie folgt überprüft werden:

[root@sr2500test-node1 ~]# grep SLES /etc/vztt/vztt.conf 
#SLES_SERVER=https://127.0.0.1
[root@sr2500test-node1 ~]# 

Fügen Sie nun einen Eintrag mit der richtigen IP Adresse hinzu (achten Sie dabei auf die zwei Pfeile >> im Kommando):

[root@sr2500test-node1 ~]# echo "SLES_SERVER=https://192.168.1.153" >> /etc/vztt/vztt.conf
[root@sr2500test-node1 ~]# grep SLES /etc/vztt/vztt.conf 
#SLES_SERVER=https://127.0.0.1
SLES_SERVER=https://192.168.1.153
[root@sr2500test-node1 ~]#

Template Cache erstellen

Überprüfen Sie, ob Sie das sles-10-x86_64 Template bereits installiert haben:

[root@sr2500test-node1 ~]# vzpkg list
centos-4-x86_64			2009-05-06 09:05:28
sles-10-x86_64
[root@sr2500test-node1 ~]# 

Falls es noch fehlt kopieren Sie sles-10-x86_64-ez-3.0.0-9.swsoft.noarch.rpm nach /root/ am Basissystem des aktiven Knotens und installieren es wie folgt:

[root@sr2500test-node1 ~]# rpm -ihv sles-10-x86_64-ez-3.0.0-9.swsoft.noarch.rpm 
Preparing...                ########################################### [100%]
   1:sles-10-x86_64-ez      ########################################### [100%]
[root@sr2500test-node1 ~]#

Nun können Sie den Template Cache erstellen:

[root@sr2500test-node1 ~]# vzpkg create cache sles-10-x86_64
Debug: Using temporary VEID 10000001
Debug: Mounting VE private area

Creating cache for sles-10-x86_64 OS template
Loading "rpm2vzrpm" plugin
Setting up Install Process
Setting up repositories
[...]
Finished.
Packing cache file sles-10-x86_64.tar.gz ...
Cache file sles-10-x86_64.tar.gz [4.7M] created.
[root@sr2500test-node1 ~]#

Das Kommando vzpkg list zeigt nun das Datum der Erstellung dieses Templates:

[root@sr2500test-node1 ~]# vzpkg list
centos-4-x86_64			2009-05-06 09:05:28
sles-10-x86_64			2009-05-06 10:13:45
[root@sr2500test-node1 ~]# 

Das Template kann nun zur Erstellung neuer virtueller Server verwendet werden.

Tips

Hinzufügen weiterer Pakete in einem Gastsystem

Wenn ein virtueller Server mit SLES10 eingerichtet wurde (z.B. über das VZ Control Center) können zusätzliche Pakte einfach vom Basissystem aus mittels vzpkg nachinstalliert werden. Hier ein Beispiel indem MySQL nachinstalliert wird:

[root@sr2500test-node1 ~]# vzlist
      VEID      NPROC STATUS    IP_ADDR         HOSTNAME                        
         1         52 running   192.168.255.3   localhost                       
       101         12 running   192.168.1.153   vps.thomas-krenn.com            
       102         16 running   192.168.1.154   sles10test                      
[root@sr2500test-node1 ~]# vzpkg install 102 -p mysql  
Loading "rpm2vzrpm" plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for mysql to pack into transaction set.
mysql-5.0.26-12.18.x86_64 100% |=========================|  48 kB    00:00     
---> Package mysql.x86_64 0:5.0.26-12.18 set to be updated
--> Running transaction check
--> Processing Dependency: mysql-client for package: mysql
--> Processing Dependency: perl-DBD-mysql for package: mysql
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for mysql-client to pack into transaction set.
mysql-client-5.0.26-12.18 100% |=========================|  29 kB    00:00     
---> Package mysql-client.x86_64 0:5.0.26-12.18 set to be updated
---> Downloading header for perl-DBD-mysql to pack into transaction set.
perl-DBD-mysql-3.0002-15. 100% |=========================| 5.4 kB    00:00     
---> Package perl-DBD-mysql.x86_64 0:3.0002-15.2 set to be updated
--> Running transaction check
--> Processing Dependency: perl-Data-ShowTable for package: perl-DBD-mysql
--> Processing Dependency: perl-DBI for package: perl-DBD-mysql
--> Processing Dependency: libmysqlclient.so.15()(64bit) for package: perl-DBD-mysql
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for mysql-shared to pack into transaction set.
mysql-shared-5.0.26-12.18 100% |=========================|  28 kB    00:00     
---> Package mysql-shared.x86_64 0:5.0.26-12.18 set to be updated
---> Downloading header for perl-Data-ShowTable to pack into transaction set.
perl-Data-ShowTable-3.3-5 100% |=========================| 4.0 kB    00:00     
---> Package perl-Data-ShowTable.x86_64 0:3.3-584.2 set to be updated
---> Downloading header for perl-DBI to pack into transaction set.
perl-DBI-1.50-13.2.x86_64 100% |=========================|  12 kB    00:00     
---> Package perl-DBI.x86_64 0:1.50-13.2 set to be updated
--> Running transaction check
--> Processing Dependency: perl-PlRPC for package: perl-DBI
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for perl-PlRPC to pack into transaction set.
perl-PlRPC-0.2018-13.2.x8 100% |=========================| 4.3 kB    00:00     
---> Package perl-PlRPC.x86_64 0:0.2018-13.2 set to be updated
--> Running transaction check
--> Processing Dependency: perl-Net-Daemon for package: perl-PlRPC
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for perl-Net-Daemon to pack into transaction set.
perl-Net-Daemon-0.38-61.2 100% |=========================| 3.9 kB    00:00     
---> Package perl-Net-Daemon.x86_64 0:0.38-61.2 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size 
=============================================================================
Installing:
 mysql                   x86_64     5.0.26-12.18     base2              16 M
Installing for dependencies:
 mysql-client            x86_64     5.0.26-12.18     base2             5.7 M
 mysql-shared            x86_64     5.0.26-12.18     base2             1.2 M
 perl-DBD-mysql          x86_64     3.0002-15.2      base2             139 k
 perl-DBI                x86_64     1.50-13.2        base2             560 k
 perl-Data-ShowTable     x86_64     3.3-584.2        base2              53 k
 perl-Net-Daemon         x86_64     0.38-61.2        base2              40 k
 perl-PlRPC              x86_64     0.2018-13.2      base2              33 k

Transaction Summary
=============================================================================
Install      8 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         
Total download size: 24 M
Downloading Packages:
(1/8): mysql-client-5.0.2 100% |=========================| 5.7 MB    00:00     
(2/8): mysql-shared-5.0.2 100% |=========================| 1.2 MB    00:00     
(3/8): perl-Data-ShowTabl 100% |=========================|  53 kB    00:00     
(4/8): perl-DBD-mysql-3.0 100% |=========================| 139 kB    00:00     
(5/8): perl-PlRPC-0.2018- 100% |=========================|  33 kB    00:00     
(6/8): perl-Net-Daemon-0. 100% |=========================|  40 kB    00:00     
(7/8): mysql-5.0.26-12.18 100% |=========================|  16 MB    00:00     
(8/8): perl-DBI-1.50-13.2 100% |=========================| 560 kB    00:00     
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: perl-Net-Daemon              ######################### [1/8] 
  Installing: perl-PlRPC                   ######################### [2/8] 
  Installing: perl-DBI                     ######################### [3/8] 
  Installing: perl-Data-ShowTable          ######################### [4/8] 
  Installing: mysql-shared                 ######################### [5/8] 
  Installing: perl-DBD-mysql               ######################### [6/8] 
  Installing: mysql-client                 ######################### [7/8] 
  Installing: mysql                        ######################### [8/8] 

Installed: mysql.x86_64 0:5.0.26-12.18
Dependency Installed: mysql-client.x86_64 0:5.0.26-12.18 mysql-shared.x86_64 0:5.0.26-12.18 perl-DBD-mysql.x86_64 0:3.0002-15.2 perl-DBI.x86_64 0:1.50-13.2 perl-Data-ShowTable.x86_64 0:3.3-584.2 perl-Net-Daemon.x86_64 0:0.38-61.2 perl-PlRPC.x86_64 0:0.2018-13.2
Complete!
Installed:
 mysql                  x86_64    5.0.26-12.18
Dependency Installed:
 mysql-client           x86_64    5.0.26-12.18
 mysql-shared           x86_64    5.0.26-12.18
 perl-DBD-mysql         x86_64    3.0002-15.2
 perl-DBI               x86_64    1.50-13.2
 perl-Data-ShowTable    x86_64    3.3-584.2
 perl-Net-Daemon        x86_64    0.38-61.2
 perl-PlRPC             x86_64    0.2018-13.2
[root@sr2500test-node1 ~]# 

Referenzen

  1. Virtuozzo Installation Guide Kapitel Managing Repositories for Commercial Linux Distributions, Seite 65


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

Problem Ubuntu Hardy 8.04 EZ Template in Virtuozzo
SSL Zertifikat in Virtuozzo austauschen
Unable to start init, probably incorrect template in Virtuozzo beheben