Rechercher

11.3. Optionnel : Ajout de crochets pour exécuter des tâches Ansible sur des machines RHEL

download PDF

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

  1. 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"
  2. 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 crochetDescription

openshift_node_pre_cordon_hook

  • Exécute before chaque nœud est entouré d'un cordon.
  • Ce crochet s'exécute contre each node en série.
  • Si une tâche doit être exécutée sur un hôte différent, elle doit utiliser delegate_to ou local_action.

openshift_node_pre_upgrade_hook

  • Le site after permet d'isoler chaque nœud, mais le site before permet de le mettre à jour.
  • Ce crochet s'exécute contre each node en série.
  • Si une tâche doit être exécutée sur un hôte différent, elle doit utiliser delegate_to ou local_action.

openshift_node_pre_uncordon_hook

  • L'exécution de after permet de mettre à jour chaque nœud, mais before n'est pas enregistré.
  • Ce crochet s'exécute contre each node en série.
  • Si une tâche doit être exécutée sur un hôte différent, elle doit utiliser delegate_to ou local_action.

openshift_node_post_upgrade_hook

  • Exécute after chaque nœud non enregistré. Il s'agit de l'action de mise à jour du nœud last.
  • Ce crochet s'exécute contre each node en série.
  • Si une tâche doit être exécutée sur un hôte différent, elle doit utiliser delegate_to ou local_action.
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.