7.10 Points d'insertion (hooks) de migration pour YaST Wagon. Suse 11 SP4
7.9.5 pour plus d'informations
Pour plus d'informations, reportez-vous au fichier situé sous /usr/share/doc/ packages/multi-update-tools/README
fourni avec le paquetage multiupdate-tools
.
7.10 Points d'insertion (hooks) de migration pour YaST Wagon
Les points d'insertion de migration vous permettent d'exécuter un script externe personnalisé à un point du processus de migration. Ces scripts vous offrent la possibilité de traiter des problèmes spécifiques qui ne peuvent pas être gérés au moyen des scripts RPM habituels ou encore d'effectuer d'autres opérations qui peuvent s'avérer nécessaires en cours de migration (et qui ne sont pas requises dans le cadre d'une mise
à jour normale du paquetage).
Les points d'insertion de migration sont exécutés avec des privilèges root. Il est donc possible d'effectuer toute tâche de maintenance dans les scripts (démarrage/arrêt de services, sauvegarde de données, migration de données, etc.). Les scripts ne doivent pas
être interactifs ; STDIN et STDOUT sont redirigés vers des tubes en cas d'exécution dans YaST. La session X ne doit pas être utilisée, car il se peut qu'elle ne soit pas disponible dans tous les cas (lors d'une exécution en mode texte, par exemple).
N'oubliez pas de définir l'autorisation d'exécutable pour les scripts hook.
Les points d'insertion de migration sont pris en charge dans le paquetage yast2wagon
version 2.17.32.1 (fournie en tant que mise à jour pour SLES11-SP2) ou
2.17.34 (incluse dans SLES11-SP3) et versions ultérieures.
7.10.1 Convention d'attribution de noms et emplacement des scripts hook
La recherche des scripts s'effectue dans le répertoire /var/lib/YaST2/wagon/ hooks/
. Le nom de script doit être au format step_seq_prefix_name, où :
procédure
est un nom d'étape de migration prédéfini qui décrit l'étape de migration en cours.
Mise à jour de SUSE Linux Enterprise 187
seq
est un numéro de séquence compris entre 00 et 99, ce qui permet de définir l'ordre d'exécution des scripts. (Pour garantir un classement correct, il est important de conserver les zéros de gauche.)
prefix
doit être unique afin d'éviter les conflits (comme un espace de noms). Utilisez un nom de paquetage (s'il fait partie d'un paquetage) ou votre nom de fournisseur, nom de domaine Internet, etc. ; en fait, tout élément pouvant être considéré comme suffisamment unique.
name
peut être n'importe quelle chaîne de caractères (simplement pour différencier les scripts). Il est conseillé d'utiliser un nom descriptif.
Exemple 7.2 Script hook avec chemin complet
/var/lib/YaST2/wagon/hooks/before_package_migration_00_postgresql_backup
7.10.2 Valeur de sortie du script hook
Le script doit renvoyer la valeur de sortie 0. En cas d'échec (toute valeur de sortie non nulle), un message d'erreur s'affiche dans Wagon. Il est alors possible de redémarrer le script, d'ignorer l'erreur (et de poursuivre avec d'autres scripts) ou d'annuler complètement les points d'insertion pour l'étape en cours.
7.10.3 Scripts Idempotent
Les scripts hook peuvent potentiellement être exécutés à plusieurs reprises (lorsque vous basculez entre les différentes boîtes de dialogue de Wagon, il se peut que ce dernier redémarre automatiquement ou que certaines étapes soient exécutées plusieurs fois dans le workflow de migration). Les scripts doivent donc faire face à ce genre de situation (ils peuvent vérifier, au départ, si l'action doit être exécutée ou si elle l'a déjà été, ou encore créer un simple fichier stamp temporaire ou bien résoudre correctement plusieurs exécutions).
188 Guide de déploiement
7.10.4 Liste des points d'insertion pris en charge
Certains points d'insertion sont facultatifs (car ils dépendent des résultats précédents ou de valeurs sélectionnées par l'utilisateur). Certains d'entre eux sont appelés à plusieurs reprises (l'enregistrement, par exemple, est appelé avant et après la migration). Voici la liste des points d'insertion pris en charge (noms des étapes) dans l'ordre d'exécution : before_init
Démarré en tout début de procédure (remarque : il est de nouveau appelé après le redémarrage de Wagon) before_welcome
, after_welcome
Démarré avant/après l'affichage de la boîte de dialogue de bienvenue before_registration_check
, after_registration_check
Wagon vérifie l'état d'enregistrement (si l'enregistrement de certains produits est arrivé à expiration, il se peut que la migration échoue). Si tout est correct, aucune boîte de dialogue ne s'ouvre et Wagon passe automatiquement à l'étape suivante.
before_custom_url
, after_custom_url
Le gestionnaire de dépôt est démarré(facultatif, en mode CD correctif uniquement).
before_self_update
, after_self_update
Appelé avant/après la migration automatique de Wagon (afin de s'assurer que la version la plus récente est utilisée pour la migration).
before_installing_migration_products
, after_installing_migration_products
Appelé avant/après l'installation des produits de migration.
before_selecting_migration_source
, after_selecting_migration_source
Wagon demande à l'utilisateur de procéder à la migration via des dépôts Novell
Customer Center ou à l'aide d'un dépôt personnalisé ; l'étape suivante dépend de la sélection effectuée par l'utilisateur.
before_registration
, after_registration
Exécution du registre SUSE (afin d'ajouter des dépôts de migration).
Mise à jour de SUSE Linux Enterprise 189
before_repo_selection
, after_repo_selection
Gestion manuelle des dépôts.
before_set_migration_repo
, after_set_migration_repo
Sélection des dépôts de migration (migration complète/minimale en cas d'utilisation de Novell Customer Center) ou sélection du dépôt de mise à jour
(migration personnalisée du dépôt).
before_package_migration
Avant le démarrage de la mise à jour du paquetage, et après cette étape, la migration proprement dite démarre et il est impossible de revenir automatiquement à l'état précédent (si vous annulez la migration au cours de cette phase, le système sera inconsistant (mise à niveau partielle) et un retour manuel à la version précédente s'avérera nécessaire).
before_registration
, after_registration
Exécution du registre SUSE (pour enregistrer les produits mis à jour).
before_congratulate
, after_congratulate
Avant/après que Wagon n'affiche la boîte de dialogue Félicitations consécutive à une migration réussie.
before_exit
Appelé juste avant la fermeture de Wagon (systématiquement, quel que soit le résultat de la migration ; également après l'annulation et lors du redémarrage).
7.10.5 Points d'insertion d'abandon
Des points d'insertion spéciaux sont appelés lorsque l'utilisateur interrompt la migration. Ils peuvent être appelés à n'importe quelle étape du workflow de migration.
L'ordre d'exécution ne peut donc pas être garanti. Les scripts doivent vérifier l'état actuel s'ils dépendent des résultats d'autres points d'insertion.
before_abort
Abandon de la migration confirmé par l'utilisateur.
before_abort_rollback
, after_abort_rollback
Retour à la version précédente confirmé par l'utilisateur après l'abandon (retour aux anciens produits installés avant le lancement de la migration). Ces points d'insertion sont appelés après before_abort et ignorés si l'utilisateur ne confirme pas le retour à la version précédente.
190 Guide de déploiement
7.10.6 Points d'insertion de redémarrage
Ces points d'insertion sont appelés lorsque Wagon effectue un redémarrage automatique.
before_restart
Wagon se ferme et va être redémarré.
after_restart
Wagon a redémarré et exécute l'étape suivante du workflow de migration.
7.10.7 Points d'insertion utilisés généralement
La liste des points d'insertion est relativement volumineuse, mais l'utilisation de nombre d'entre eux ne se justifie que dans des cas bien spécifiques. Dans les cas d'utilisation normaux, il est conseillé d'accorder la préférence aux points d'insertion suivants :
• Pour réaliser une action avant la migration du système (en exécutant toujours la version antérieure), utilisez le point d'insertion before_package_migration.
À ce stade, il apparaît clairement que la migration est prête et sur le point de démarrer, alors que, dans toutes les étapes précédentes, il était possible de l'annuler.
• Pour réaliser une action après la migration du système (le système exécute la nouvelle version migrée, mais certains éléments ne sont peut-être pas encore actifs ; un redémarrage est nécessaire pour le kernel mis à jour, les services mis à jour doivent peut-être être redémarrés, etc.), utilisez le point d'insertion before_congratulate
ou after_congratulate.
Il peut également être utilisé pour effacer les résultats temporaires du point d'insertion before_package_migration. À ce stade, la migration a été effectuée avec succès.
• Pour annuler les modifications en cas d'abandon de la migration, utilisez l'un des points d'insertion d'abandon en fonction du cas. Pour rappel, il est possible d'appeler les points d'insertion d'abandon à tout moment. L'annulation peut donc s'avérer
Mise à jour de SUSE Linux Enterprise 191
inutile (il se peut que le point d'insertion qui effectue les modifications n'ait pas encore été appelé). Les points d'insertion d'abandon doivent vérifier l'état actuel.
7.10.8 Points d'insertion obsolètes
Les versions antérieures de Wagon ne prenaient en charge que deux scripts hook, à savoir : /usr/lib/YaST2/bin/wagon_hook_init et /usr/lib/YaST2/ bin/wagon_hook_finish
. Le problème était dû au fait qu'un seul script pouvait
être exécuté comme point d'insertion et qu'il était impossible de placer directement ces points dans des paquetages RPM.
Ces anciens scripts hook sont toujours pris en charge dans les versions plus récentes de Wagon pour des raisons de rétrocompatibilité, mais les nouveaux points d'insertion before_init
et before_exit doivent être utilisés au lieu des points obsolètes.
192 Guide de déploiement

Link pubblico aggiornato
Il link pubblico alla tua chat è stato aggiornato.