Créer vos templates OracleVM manuellement

Parmi les bonnes raisons d’utiliser OracleVM, la possibilité d’installer des guests en quelques minutes est une très bonne motivation. Oracle offre de nombreux templates sur eDelivery, d’Oracle EL 5.4 à Oracle E-Business Suite en passant par Fusion Middleware ou Oracle BI. Créer des templates est bien plus rapide que d’utiliser virt-install et des scripts Kickstart.

Pour répondre aux besoins de personalisation, vous pourrez simplement ajouter vos scripts, des agents de sauvegarde, de supervision ou n’importe quel programme. Les templates interrogent les administrateurs quant aux paramètres qu’ils doivent positionner : configuration réseau, nom du serveur, paramètres Oracle, etc. Dans cet article, vous trouverez quelques éléments pour construire vos propres templates, sans utiliser Oracle VM Template Builder.

Introduction

Pour déployer des machines virtuelles, vous pouvez construire vos templates avec Oracle EL JeOS et le Template Builder : Une fois le template créé et chargé sur Oracle VM Manager, vous pourrez installer vos guests et répondre aux questions lors du premier démarrage :Pour se faire, Oracle inclut un service nommé oraclevm-template dans JeOS et ses templates. Vous pouvez configurer ce service avec l’utilitaire du même nom et le fichier /etc/sysconfig/oraclevm-template. Ce service est conçu pour interroger l’administrateur quant au paramètre de configuration de votre guest lors de son premier démarrage uniquement; vous pouvez créer vos propres scripts pour ajouter vos propres paramètres.

Le Principe

Au lieu d’utiliser Oracle VM Template Builder, vous pouvez simplement démarrer un template existant et le modifier. C’est cette méthode que cet article présente en reprenant l’exemple disponible sur OTN intitulé
Oracle VM Template Developer’s Guide: Creating Pre-Built VMs for Rapid Software Deployment
. Comme vous vous en rendrez compte, c’est extrèmement simple !

Note:
Je suis un grand fan des installations en mode silent. J’ai d’ailleurs écrit de nombreux articles sur le sujet à propos d’Oracle Database 11g R2, de l’Infrastructure Grid Stand-alone (aka Oracle Restart), des Patch Set et même d’Oracle Real Application Clusters. Toutefois dans le cas de la création de template, l’utilisation des scripts de cloning est sans doute la solutions la plus simple et la plus rapide à l’installation; après tout chaque minute compte

Télécharger et démarrer un template de VM

Il est entendu que pour créer un template il vous faut un serveur Oracle VM. Pour créer vos VM, vous pouvez simplement télécharger et démarrer un template existant depuis eDelivery. Ainsi, pas besoin d’OracleVM Template Builder ! Vous pourrez alors changer les différents éléments de configuration comme la langue du clavier : system-config-keyboard, le mot de passe de l’utilisateur Root : passwd ou de l’utilisateur Oracle : passwd oracle. Vous pourrez également vérifier que le service oraclevm-template est correctement installé.

Créer et attacher les disques à votre VM

Une méthode simple et discrète pour partager des logiciels avec une VM consiste à créer un disque et charger les distributions dessus. Vous pouvez effecter cette opération depuis n’importe quel portable ou poste de travail sous Linux:

dd if=/dev/zero of=/disk/distribs.img bs=1024k count=1 seek=10240 
sudo mkdir /distribs
mount -t ext3 -o loop /disk/distribs.img /distribs
sudo chown oracle:oinstall /distribs

Vous pouvez simplement télécharger les logiciels de votre choix et les décompresser dans /distribs. Une fois le disque sur le VM Server, créez le disque qui contiendra les logiciels installés et attachez-les à votre VM:

xm list

dd if=/dev/zero
of=/OVS/running_pool/OVM_EL5U4_ORA112_X86_PVM/Oracle.img
bs=1024k count=1 seek=10240

xm block-attach 3
"tap:aio:/OVS/running_pool/OVM_EL5U4_ORA112_X86_PVM/Oracle.img"
xvdb w

ls -l /disk/

xm block-attach 3 "tap:aio:/disk/distribs.img" xvdc w

Monter les disques dans le guest

Une fois les disque créé et publiés dans la VM, vous pouvez les monter depuis la console de la machine virtuelle ou une session SSH:

mkdir /distribs
mount -t ext3 /dev/xvdc /distribs

mkfs -t ext3 /dev/xvdb
cat >>/etc/fstab <<EOF
/dev/xvdb /u01 ext3 defaults 0 0
EOF

mount /u01

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda2 3.9G 2.0G 1.9G 52% /
/dev/xvda1 92M 12M 76M 14% /boot
tmpfs 513M 0 513M 0% /dev/shm
/dev/xvdc 9.9G 4.1G 5.3G 44% /distribs
/dev/xvdb 20G 173M 19G 1% /u01

Installer la base de données Oracle

Installer uniquement le logiciel Oracle Database 11g Release 2 ne dépend pas du nom du serveur. Toutefois, ce n’est pas le cas de l’infrastructure Grid. L’objectif du présent article n’est pas d’entrer dans ce type de détails. En revanche, vous trouverez ci-dessous les commandes à exécuter pour installer le logiciel et l’utiliser sans ASM; d’abord, sous root, créez l’inventory :

if [ -f "/etc/oraInst.loc" ]; then
echo "File Exists"
else
echo "inventory_loc=/u01/app/oraInventory" >/etc/oraInst.loc;
echo "inst_group=oinstall" >>/etc/oraInst.loc;
mkdir -p /u01/app/oraInventory;
chown oracle:oinstall /u01/app;
chown oracle:oinstall /u01/app/oraInventory;
chmod 664 /etc/oraInst.loc;
fi

Puis sous Oracle, installez le logiciel :

su - oracle

cd /distribs/database

export DISTRIB=`pwd`

./runInstaller -silent
-responseFile $DISTRIB/response/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true

Enfin sous root encore, lancez le script root.sh :

/u01/app/oracle/product/11.2.0/db_1/root.sh

Installer l’agent Oracle

Vous pouvez ensuite installer l’agent Enterprise Manager 10.2.0.5 depuis la distribution associée; voici les comman
des à mancer :

grep -v "^#" /distribs/agent/linux/response/additional_agent.rsp 
|grep -v "^[ t]"|grep -v "^$" |grep -v BASEDIR
|grep -v sl_OMSConnectInfo >/tmp/my.rsp

cat <<EOF >>/tmp/my.rsp
BASEDIR=/u01/app/oracle/product
sl_OMSConnectInfo={"dummy","9999"}
EOF

cd /distribs/agent/linux/agent

./runInstaller -silent -responseFile /tmp/my.rsp

sudo /u01/app/oracle/product/agent10g/root.sh

Reconfigurer le template

Pour configurer le template, il faut créer un script de configuration et un script de déconfiguration. Pour l’agent, vous trouverez l’ensemble des informations utiles dans le document Oracle VM Template Developer’s Guide: Creating Pre-Built VMs for Rapid Software Deployment. Pour vous simplifier la tâche, je vous propose de télécharger et exécuter le script ci-joint emagent-shell.sh sur le guest qui vous servira de template. Une fois l’opération effectuée, vous pouvez configurer le service oraclevm-template :

## export ORACLE_TRACE=T

cp -p /etc/sysconfig/oraclevm-template
/etc/sysconfig/oraclevm-template.bak

grep -v "^TEMPLATE_CLEANUP_SCRIPT"
/etc/sysconfig/oraclevm-template.bak
| grep -v "^TEMPLATE_CONFIG_SCRIPT"
>/etc/sysconfig/oraclevm-template

cat >>/etc/sysconfig/oraclevm-template <<EOF
TEMPLATE_CLEANUP_SCRIPT=/u01/emagent-cleanup.sh
TEMPLATE_CONFIG_SCRIPT=/u01/emagent-reconfig.sh
EOF

oraclevm-template --enable

Arrêter le serveur et créer le template

Vous êtes prêt à packager le template; arrêter la VM et copier l’ensemble des fichiers:

cp --sparse=always -R 154_OVM_EL5U4_ORACLE_X86_PVM 
/OVS/seed_pool/OVM_EL5U4_ORA112_X86_PVM

Vous pouvez ensuite régénérer le fichier vm.cfg :

# cat >>vm.cfg <<EOF
bootloader = '/usr/bin/pygrub'
disk = ['tap:aio:/OVS/seed_pool/OVM_EL5U4_ORA112_X86_PVM/System.img,xvda,w',
'tap:aio:/OVS/seed_pool/OVM_EL5U4_ORA112_X86_PVM/Oracle.img,xvdb,w']
memory = '1024'
name = 'OVM_EL5U4_ORA112_X86_PVM'
vcpus = 1
on_crash = 'restart'
on_reboot = 'restart'
vfb = ['type=vnc,vncunused=1,vnclisten=0.0.0.0']
vif = ['type=netfront']
EOF

Votre template est prêt à être déployé sur ce serveur (ou sur un autre)

1 réflexion sur “Créer vos templates OracleVM manuellement”

  1. 2 notes complémentaires:
    . J’ai légèrement modifié le script car le service gcstartup démarre en S98 au lieu de S99 en 10.2.0.5. Il est activé pour les niveaux 2, 3 et 5
    . Avant de déployer la VM, assurez vous que son IP publique est dans le dns ou le /etc/hosts des serveurs de l’OMS

Les commentaires sont fermés.