11.3. Optionnel : Ajout de crochets pour exécuter des tâches Ansible sur des machines RHEL
Vous pouvez utiliser hooks pour exécuter des tâches Ansible sur les machines de calcul RHEL pendant la mise à jour d'OpenShift Container Platform.
11.3.1. À propos des crochets Ansible pour les mises à niveau
Lorsque vous mettez à jour OpenShift Container Platform, vous pouvez exécuter des tâches personnalisées sur vos nœuds Red Hat Enterprise Linux (RHEL) pendant des opérations spécifiques en utilisant hooks. Les crochets vous permettent de fournir des fichiers qui définissent les tâches à exécuter avant ou après des tâches de mise à jour spécifiques. Vous pouvez utiliser les crochets pour valider ou modifier l'infrastructure personnalisée lorsque vous mettez à jour les nœuds de calcul RHEL dans votre cluster OpenShift Container Platform.
Comme l'échec d'un crochet entraîne l'échec de l'opération, vous devez concevoir des crochets idempotents, c'est-à-dire capables de s'exécuter plusieurs fois et de fournir les mêmes résultats.
Les crochets présentent les limitations importantes suivantes : - Les Hooks n'ont pas d'interface définie ou versionnée. Ils peuvent utiliser des variables internes openshift-ansible
, mais il est possible que ces variables soient modifiées ou supprimées dans les prochaines versions d'OpenShift Container Platform. - Les hooks n'ont pas de gestion des erreurs, donc une erreur dans un hook interrompt le processus de mise à jour. Si vous obtenez une erreur, vous devez résoudre le problème et recommencer la mise à jour.
11.3.2. Configurer le fichier d'inventaire Ansible pour qu'il utilise des crochets
Vous définissez les crochets à utiliser lorsque vous mettez à jour les machines de calcul Red Hat Enterprise Linux (RHEL), qui sont également connues sous le nom de machines de travail, dans le fichier d'inventaire hosts
sous la section all:vars
.
Conditions préalables
-
Vous avez accès à la machine que vous avez utilisée pour ajouter le cluster de machines de calcul RHEL. Vous devez avoir accès au fichier d'inventaire Ansible
hosts
qui définit vos machines RHEL.
Procédure
Après avoir conçu le crochet, créez un fichier YAML qui définit les tâches Ansible pour celui-ci. Ce fichier doit être un ensemble de tâches et ne peut pas être un playbook, comme le montre l'exemple suivant :
--- # Trivial example forcing an operator to acknowledge the start of an upgrade # file=/home/user/openshift-ansible/hooks/pre_compute.yml - name: note the start of a compute machine update debug: msg: "Compute machine upgrade of {{ inventory_hostname }} is about to start" - name: require the user agree to start an upgrade pause: prompt: "Press Enter to start the compute machine update"
Modifiez le fichier d'inventaire Ansible
hosts
pour spécifier les fichiers d'accroche. Les fichiers de crochets sont spécifiés en tant que valeurs de paramètres dans la section[all:vars]
, comme indiqué :Exemple de définitions de crochets dans un fichier d'inventaire
[all:vars] openshift_node_pre_upgrade_hook=/home/user/openshift-ansible/hooks/pre_node.yml openshift_node_post_upgrade_hook=/home/user/openshift-ansible/hooks/post_node.yml
Pour éviter toute ambiguïté dans les chemins d'accès aux crochets, utilisez des chemins absolus plutôt que des chemins relatifs dans leurs définitions.
11.3.3. Crochets disponibles pour les machines de calcul RHEL
Vous pouvez utiliser les crochets suivants lorsque vous mettez à jour les machines de calcul Red Hat Enterprise Linux (RHEL) dans votre cluster OpenShift Container Platform.
Nom du crochet | Description |
---|---|
|
|
|
|
|
|
|
|