Chapitre 4. Surveillance des performances à l'aide des rôles système RHEL
En tant qu'administrateur système, vous pouvez utiliser le rôle système metrics RHEL pour surveiller les performances d'un système.
4.1. Préparation d'un nœud de contrôle et de nœuds gérés à l'utilisation des rôles système RHEL Copier lienLien copié sur presse-papiers!
Avant de pouvoir utiliser des rôles système RHEL individuels pour gérer des services et des paramètres, vous devez préparer le nœud de contrôle et les nœuds gérés.
4.1.1. Préparation d'un nœud de contrôle sur RHEL 9 Copier lienLien copié sur presse-papiers!
Avant d'utiliser RHEL System Roles, vous devez configurer un nœud de contrôle. Ce système configure ensuite les hôtes gérés à partir de l'inventaire conformément aux playbooks.
Conditions préalables
- RHEL 8.6 ou une version ultérieure est installée. Pour plus d'informations sur l'installation de RHEL, voir Effectuer une installation standard de RHEL 9.
- Le système est enregistré sur le portail client.
-
Un abonnement
Red Hat Enterprise Linux Serverest attaché au système. -
S'il est disponible dans votre compte Portail Client, un abonnement
Ansible Automation Platformest attaché au système.
Procédure
Installez le paquetage
rhel-system-roles:dnf install rhel-system-roles
[root@control-node]# dnf install rhel-system-rolesCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cette commande installe le paquet
ansible-coreen tant que dépendance.NoteDans RHEL 8.5 et les versions antérieures, les packages Ansible étaient fournis via Ansible Engine au lieu d'Ansible Core, et avec un niveau de support différent. N'utilisez pas Ansible Engine car les packages peuvent ne pas être compatibles avec le contenu d'automatisation Ansible dans RHEL 8.6 et les versions ultérieures. Pour plus d'informations, voir Étendue de la prise en charge du package Ansible Core inclus dans les référentiels AppStream RHEL 9 et RHEL 8.6 et versions ultérieures.
Créez un utilisateur nommé
ansiblepour gérer et exécuter les playbooks :useradd ansible
[root@control-node]# useradd ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow Passez à l'utilisateur nouvellement créé
ansible:su - ansible
[root@control-node]# su - ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow Effectuez le reste de la procédure en tant qu'utilisateur.
Créez une clé publique et une clé privée SSH :
ssh-keygen
[ansible@control-node]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/ansible/.ssh/id_rsa): <password> ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez l'emplacement par défaut proposé pour le fichier clé.
- Facultatif : Pour éviter qu'Ansible ne vous demande le mot de passe de la clé SSH à chaque fois que vous établissez une connexion, configurez un agent SSH.
Créez le fichier
~/.ansible.cfgavec le contenu suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLes paramètres du fichier
~/.ansible.cfgont une priorité plus élevée et remplacent les paramètres du fichier global/etc/ansible/ansible.cfg.Avec ces paramètres, Ansible effectue les actions suivantes :
- Gère les hôtes dans le fichier d'inventaire spécifié.
-
Utilise le compte défini dans le paramètre
remote_userlorsqu'il établit des connexions SSH avec les nœuds gérés. -
Utilise l'utilitaire
sudopour exécuter des tâches sur les nœuds gérés en tant qu'utilisateurroot. - Demande le mot de passe root de l'utilisateur distant à chaque fois que vous appliquez un playbook. Ceci est recommandé pour des raisons de sécurité.
Créez un fichier
~/inventoryau format INI ou YAML qui répertorie les noms d'hôtes gérés. Vous pouvez également définir des groupes d'hôtes dans le fichier d'inventaire. Par exemple, voici un fichier d'inventaire au format INI avec trois hôtes et un groupe d'hôtes nomméUS:managed-node-01.example.com [US] managed-node-02.example.com ansible_host=192.0.2.100 managed-node-03.example.com
managed-node-01.example.com [US] managed-node-02.example.com ansible_host=192.0.2.100 managed-node-03.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Notez que le nœud de contrôle doit être en mesure de résoudre les noms d'hôte. Si le serveur DNS ne peut pas résoudre certains noms d'hôtes, ajoutez le paramètre
ansible_hostà côté de l'entrée de l'hôte pour spécifier son adresse IP.
Prochaines étapes
- Préparez les nœuds gérés. Pour plus d'informations, voir Préparation d'un nœud géré.
4.1.2. Préparation d'un nœud géré Copier lienLien copié sur presse-papiers!
Les nœuds gérés sont les systèmes répertoriés dans l'inventaire et qui seront configurés par le nœud de contrôle conformément au cahier de jeu. Il n'est pas nécessaire d'installer Ansible sur les hôtes gérés.
Conditions préalables
- Vous avez préparé le nœud de contrôle. Pour plus d'informations, voir Préparation d'un nœud de contrôle sur RHEL 9.
Vous disposez d'un accès SSH à partir du nœud de contrôle.
ImportantL'accès SSH direct en tant qu'utilisateur
rootprésente un risque pour la sécurité. Pour réduire ce risque, vous créerez un utilisateur local sur ce nœud et configurerez une politiquesudolors de la préparation d'un nœud géré. Ansible sur le nœud de contrôle peut alors utiliser le compte d'utilisateur local pour se connecter au nœud géré et exécuter des playbooks en tant qu'utilisateurs différents, tels queroot.
Procédure
Créez un utilisateur nommé
ansible:useradd ansible
[root@managed-node-01]# useradd ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow Le nœud de contrôle utilise ensuite cet utilisateur pour établir une connexion SSH avec cet hôte.
Définir un mot de passe pour l'utilisateur
ansible:passwd ansible
[root@managed-node-01]# passwd ansible Changing password for user ansible. New password: <password> Retype new password: <password> passwd: all authentication tokens updated successfully.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous devez saisir ce mot de passe lorsque Ansible utilise
sudopour effectuer des tâches en tant qu'utilisateurroot.Installez la clé publique SSH de l'utilisateur
ansiblesur le nœud géré :Connectez-vous au nœud de contrôle en tant qu'utilisateur
ansibleet copiez la clé publique SSH sur le nœud géré :ssh-copy-id managed-node-01.example.com
[ansible@control-node]$ ssh-copy-id managed-node-01.example.com /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ansible/.ssh/id_rsa.pub" The authenticity of host 'managed-node-01.example.com (192.0.2.100)' can't be established. ECDSA key fingerprint is SHA256:9bZ33GJNODK3zbNhybokN/6Mq7hu3vpBXDrCxe7NAvo.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Lorsque vous y êtes invité, connectez-vous en entrant
yes:Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysCopy to Clipboard Copied! Toggle word wrap Toggle overflow Lorsque vous y êtes invité, saisissez le mot de passe :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez la connexion SSH en exécutant à distance une commande sur le nœud de contrôle :
ssh <managed-node-01.example.com> whoami
[ansible@control-node]$ ssh <managed-node-01.example.com> whoami ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Créer une configuration
sudopour l'utilisateuransible:Créez et modifiez le fichier
/etc/sudoers.d/ansibleà l'aide de la commandevisudo:visudo /etc/sudoers.d/ansible
[root@managed-node-01]# visudo /etc/sudoers.d/ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow L'avantage d'utiliser
visudoplutôt qu'un éditeur normal est que cet utilitaire fournit des contrôles de base et vérifie les erreurs d'analyse avant d'installer le fichier.Configurez une politique
sudoersdans le fichier/etc/sudoers.d/ansiblequi réponde à vos besoins, par exemple :Pour autoriser l'utilisateur
ansibleà exécuter toutes les commandes en tant qu'utilisateur et groupe sur cet hôte après avoir saisi le mot de passe de l'utilisateuransible, utilisez l'option suivante :ansible ALL=(ALL) ALL
ansible ALL=(ALL) ALLCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pour autoriser l'utilisateur
ansibleà exécuter toutes les commandes en tant qu'utilisateur et groupe sur cet hôte sans saisir le mot de passe de l'utilisateuransible, utilisez la commande suivanteansible ALL=(ALL) NOPASSWD: ALL
ansible ALL=(ALL) NOPASSWD: ALLCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Vous pouvez également configurer une politique plus fine qui correspond à vos exigences en matière de sécurité. Pour plus d'informations sur les politiques de
sudoers, voir la page de manuelsudoers(5).
Vérification
Vérifiez que vous pouvez exécuter des commandes à partir du nœud de contrôle sur tous les nœuds gérés :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Le groupe all codé en dur contient dynamiquement tous les hôtes répertoriés dans le fichier d'inventaire.
Vérifiez que l'escalade des privilèges fonctionne correctement en exécutant l'utilitaire
whoamisur un hôte géré à l'aide du module Ansiblecommand:ansible managed-node-01.example.com -m command -a whoami
[ansible@control-node]$ ansible managed-node-01.example.com -m command -a whoami BECOME password: <password> managed-node-01.example.com | CHANGED | rc=0 >> rootCopy to Clipboard Copied! Toggle word wrap Toggle overflow Si la commande renvoie la valeur root, vous avez configuré correctement
sudosur les nœuds gérés.