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”
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.