Dans les cas où le démarrage ou l'utilisation de scripts pour automatiser le post-approvisionnement des systèmes n'est pas faisable ou pratique, il peut être difficile de créer des systèmes de test pour vous-même ou vos collègues. Par exemple, si vous essayez d'utiliser divers systèmes Red Hat Satellite pour votre propre apprentissage, l'installation d'une machine virtuelle, la synchronisation du contenu, la création de vues de contenu, etc. prendraient beaucoup de temps. Que se passe-t-il si vous obtenez enfin le système construit comme vous le souhaitez, mais que pendant vos études, vous le rendez accidentellement inutilisable ? Soit vous essayez de déboguer un système alors que vous ne savez pas comment il fonctionne, soit vous passez par le processus fastidieux de le reconstruire à partir de zéro. Si vous mettez ces systèmes à la disposition de vos collègues, la probabilité qu'un système devienne inutilisable augmente.
[ Vous pourriez également aimer : Logical Volume Manager (LVM) versus partitionnement standard sous Linux ]
Pour résoudre ces problèmes, j'ai utilisé des instantanés de Logical Volume Manager (LVM). Pour commencer, j'ai d'abord créé une nouvelle machine virtuelle (VM) dont le magasin de sauvegarde était un volume logique. J'ai installé le système d'exploitation, configuré les services et configuré le système en tant qu'image dorée . J'ai ensuite pris un instantané du LVM et démarré la machine virtuelle à partir de cet instantané. Lorsque le système devait être réinitialisé à l'état d'or, il s'agissait d'un simple processus de destruction et de suppression de la machine virtuelle actuelle et de création d'un nouvel instantané. Je pourrais alors démarrer la machine virtuelle à partir de cet instantané recréé.
Pour rendre cela plus accessible aux utilisateurs, une WebUI a été créée, qui utilise des composants PEAR, PHP et sudo
accès pour Apache pour exécuter le lvremove
par défaut , lvcreate
, virsh
, et xm
commandes. De plus, deux scripts personnalisés ont été créés, dont l'un se contenterait de se connecter en SSH à la machine virtuelle et d'exécuter who
pour voir si quelqu'un l'utilisait, et l'autre était un script qui exécuterait ces commandes LVM pour virsh destroy $1
, lvremove /dev/vgvms/$1.ss -f
, puis lvcreate -L +5G -s -n $1.ss /dev/vgvms/$1.gold
. En utilisant cette méthode, il était important de s'assurer que le nom de la VM correspondait au nom de la LVM et que l'instantané était *.ss
avec l'image dorée nommée *.gold
.
J'avais un petit titre avec un lien vers lorenz , qui était un système utilisant le même type de configuration mais était un hyperviseur pour les clients RHEL de base, pas les serveurs Satellite. Le tableau principal de l'interface utilisateur Web est rempli de code :
if(is_array($inactive_guests)) {
foreach ($inactive_guests as $key=>$value) {
$tpl->setVariable(array(
'server_name' => $key,
'virsh_status' => $value['status'],
'fqdn' => $value['fqdn'],
'userinfo' => $value['userinfo'],
'notes' => $value['notes'],
'inactivecontrols' => inactive_controls($key)));
$tpl->parse('inactiveserver');
}
}
L'interface utilisateur Web affiche ces champs pour chaque système, donnant cette sortie :
Les principaux avantages de cette méthode sont que vous pouvez rapidement restaurer un bon état connu, l'interface Web signale si quelqu'un utilise un système particulier, et c'est un système simple à configurer. Cependant, certains des inconvénients sont qu'il est assez gourmand en stockage et qu'il n'y a aucun moyen de réserver un système pour empêcher quelqu'un d'autre de l'utiliser ou de le restaurer à l'état doré. Cependant, avec un peu de développement supplémentaire, ces problèmes pourraient être résolus.
Les crédits pour le développement initial de ce projet reviennent à Jeremy Agee et Patrick Wiggins. Vous pouvez télécharger le code source WebUI.
[ Cours gratuit :Présentation technique de Red Hat Satellite. ]