Rechercher

23.2. Application des paramètres sélectionnés du noyau à l'aide du rôle kernel_settings

download PDF

Suivez ces étapes pour préparer et appliquer un playbook Ansible afin de configurer à distance les paramètres du noyau avec un effet persistant sur plusieurs systèmes d'exploitation gérés.

Conditions préalables

  • Vous avez les autorisations root.
  • En vertu de votre abonnement RHEL, vous avez installé les paquets ansible-core et rhel-system-roles sur la machine de contrôle.
  • Un inventaire des hôtes gérés est présent sur la machine de contrôle et Ansible peut s'y connecter.
Important

RHEL 8.0 - 8.5 donne accès à un dépôt Ansible séparé qui contient Ansible Engine 2.9 pour l'automatisation basée sur Ansible. Ansible Engine contient des utilitaires de ligne de commande tels que ansible, ansible-playbook; des connecteurs tels que docker et podman; et tout l'univers des plugins et des modules. Pour plus d'informations sur la manière d'obtenir et d'installer Ansible Engine, reportez-vous à la section Comment télécharger et installer Red Hat Ansible Engine ?

RHEL 8.6 et 9.0 a introduit Ansible Core (fourni en tant que ansible-core RPM), qui contient les utilitaires de ligne de commande Ansible, les commandes et un petit ensemble de plugins Ansible intégrés. Le dépôt AppStream fournit ansible-core, qui a une portée de support limitée. Pour en savoir plus, consultez le document Scope of support for the ansible-core package included in the RHEL 9 AppStream.

Procédure

  1. Si vous le souhaitez, vous pouvez consulter le fichier inventory à des fins d'illustration :

    #  cat /home/jdoe/<ansible_project_name>/inventory
    [testingservers]
    pdoe@192.168.122.98
    fdoe@192.168.122.226
    
    [db-servers]
    db1.example.com
    db2.example.com
    
    [webservers]
    web1.example.com
    web2.example.com
    192.0.2.42

    Ce fichier définit le groupe [testingservers] et d'autres groupes. Il vous permet d'exécuter Ansible plus efficacement sur un ensemble spécifique de systèmes.

  2. Créer un fichier de configuration pour définir les valeurs par défaut et l'escalade des privilèges pour les opérations Ansible.

    1. Créez un nouveau fichier YAML et ouvrez-le dans un éditeur de texte, par exemple :

      #  vi /home/jdoe/<ansible_project_name>/ansible.cfg
    2. Insérez le contenu suivant dans le fichier :

      [defaults]
      inventory = ./inventory
      
      [privilege_escalation]
      become = true
      become_method = sudo
      become_user = root
      become_ask_pass = true

      La section [defaults] indique un chemin d'accès au fichier d'inventaire des hôtes gérés. La section [privilege_escalation] définit que les privilèges de l'utilisateur doivent passer à root sur les hôtes gérés spécifiés. Ceci est nécessaire pour une configuration réussie des paramètres du noyau. Lorsque le playbook Ansible est exécuté, vous serez invité à saisir le mot de passe de l'utilisateur. L'utilisateur passe automatiquement à root par le biais de sudo après s'être connecté à un hôte géré.

  3. Créer un playbook Ansible qui utilise le rôle kernel_settings.

    1. Créez un nouveau fichier YAML et ouvrez-le dans un éditeur de texte, par exemple :

      #  vi /home/jdoe/<ansible_project_name>/kernel-roles.yml

      Ce fichier représente un playbook et contient généralement une liste ordonnée de tâches, également appelées plays, qui sont exécutées contre des hôtes gérés spécifiques sélectionnés dans votre fichier inventory.

    2. Insérez le contenu suivant dans le fichier :

      ---
      -
        hosts: testingservers
        name: "Configure kernel settings"
        roles:
          - rhel-system-roles.kernel_settings
        vars:
          kernel_settings_sysctl:
            - name: fs.file-max
              value: 400000
            - name: kernel.threads-max
              value: 65536
          kernel_settings_sysfs:
            - name: /sys/class/net/lo/mtu
              value: 65000
          kernel_settings_transparent_hugepages: madvise

      La clé name est facultative. Elle associe une chaîne arbitraire à la pièce en tant qu'étiquette et identifie l'objet de la pièce. La clé hosts de la pièce spécifie les hôtes contre lesquels la pièce est exécutée. La ou les valeurs de cette clé peuvent être fournies sous forme de noms individuels d'hôtes gérés ou de groupes d'hôtes tels que définis dans le fichier inventory.

      La section vars représente une liste de variables contenant les noms des paramètres du noyau sélectionnés et les valeurs auxquelles ils doivent être définis.

      La clé roles spécifie le rôle du système qui va configurer les paramètres et les valeurs mentionnés dans la section vars.

      Note

      Vous pouvez modifier les paramètres du noyau et leurs valeurs dans le playbook en fonction de vos besoins.

  4. En option, vérifiez que la syntaxe de votre pièce est correcte.

    #  ansible-playbook --syntax-check kernel-roles.yml
    
    playbook: kernel-roles.yml

    Cet exemple montre la vérification réussie d'un playbook.

  5. Exécutez votre cahier des charges.

    #  ansible-playbook kernel-roles.yml
    
    ...
    
    BECOME password:
    
    PLAY [Configure kernel settings] **********************************************************************************
    
    
    
    PLAY RECAP ********************************************************************************************************
    fdoe@192.168.122.226       : ok=10   changed=4    unreachable=0    failed=0    skipped=6    rescued=0    ignored=0
    pdoe@192.168.122.98        : ok=10   changed=4    unreachable=0    failed=0    skipped=6    rescued=0    ignored=0

    Avant qu'Ansible n'exécute votre playbook, vous allez être invité à saisir votre mot de passe afin qu'un utilisateur sur les hôtes gérés puisse être basculé sur root, ce qui est nécessaire pour configurer les paramètres du noyau.

    La section récapitulative montre que la lecture s'est terminée avec succès (failed=0) pour tous les hôtes gérés, et que 4 paramètres du noyau ont été appliqués (changed=4).

  6. Redémarrez les hôtes gérés et vérifiez les paramètres du noyau concernés pour vous assurer que les changements ont été appliqués et qu'ils persistent après les redémarrages.
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.