Dans ce tutoriel, nous allons en apprendre davantage sur l'un des modules importants d'Anible qui est autorisé_key. Nous apprendrons comment nous transférons la clé de décryptage SSH qui est stockée dans le fichier d'inventaire vers les hôtes distants dans Ansible.
Pour accomplir les tâches dans le manuel ANSIBLE sur des appareils hôtes distants distants, nous devons soit supprimer les informations d'identification de la connexion SSH à l'hôte distant, soit fournir les informations d'identification et les clés pour s'authentifier lorsque le Playbook est en cours d'exécution. Dans ANSIBLE, nous avons deux clés différentes qui sont la clé publique et la clé privée connue sous le nom de paire de clés SSH. Pour établir une connexion avec les hôtes distants cibles, nous devons échanger notre clé SSH publique avec eux tout en gardant la clé SSH privée sur les machines locales. L'OpenSSH est le mécanisme de connectivité par défaut dans l'outil ANSIBLE. ANIBLE suppose que nous nous connectons aux hôtes distants cibles à l'aide des touches SSH.
Différentes étapes de la connexion SSH à l'aide des clés dans ANIBLE
Voici les étapes que nous allons utiliser pour créer la connexion SSH entre le contrôleur ANSIBLE et les hôtes distants en utilisant la clé publique et la clé privée:
Étape 1: Faites une paire de clés en générant les clés privées et publiques avec les noms respectifs, ID, RSA et pub.
Étape 2: Si nous ne spécifions rien, Ansible est automatiquement produit sous le /.dossier ssh.
Étape 3: En collant le Public Key Pub à la fin du document /.SSH / Clés autorisées, vous pouvez la transmettre à des hôtes éloignés éloignés.
Étape 4: Connectez-vous via SSH à l'hôte distant cible. Ensuite, confirmez la demande d'ajouter les empreintes digitales des hôtes cibles au /.SSH / Document des hôtes connus. Si vous ne vous conformez pas à cela, le logiciel vous demandera de spécifier un mot de passe chaque fois que la connexion SSH est lancée.
Prérequis d'Ansible Authorization_Key
Nous supposons que vous avez un serveur de contrôle Ansible avec un anable installé ainsi que les hôtes distants cibles pour construire la connexion SSH entre toutes les modules anibles.
Allons clarifier plus d'aspects en mettant en œuvre l'exemple simple d'une clé d'autorisation dans ANSIBLE en établissant une connexion SSH en utilisant des clés publiques et privées.
Exemple:
Voici le premier exemple que nous allons mettre en œuvre dans ANSIBLE en utilisant le module Authorization_Key. Pour créer la connexion, nous avons besoin d'un livre de jeu où nous écrivons les hôtes et les tâches pour établir la connexion entre le serveur de contrôle ANSIBL et les hôtes distants cibles. La commande suivante est utilisée pour créer le playbook dans l'outil ANSIBLE:
[root @ maître anible] # nano autorisation_key_1.YML
Après avoir écrit la commande fournie, le playbook est créé et ouvert. Maintenant, nous fournissons d'abord les hôtes distants avec lesquels nous voulons créer la connexion SSH qui est les hôtes distants cibles «tout». Ensuite, nous utilisons le paramètre «Gather_facts» de l'outil ANSIBLE. L'argument Gather_fact est utilisé pour appeler le module de configuration d'Anable. Dans cette situation, nous ne voulons pas rassembler les faits, nous fournissons donc la «fausse» valeur à l'argument «Gather_facts» parce que les faits sont recueillis par défaut dans ANIBLE.
Ensuite, nous énumérons les tâches dans le livre de jeu que nous voulons faire. Nous écrivons le «nom» de la tâche qui est «rassembler des faits». Ensuite, nous écrivons le module de configuration et le «Gather_Subset» car nous voulons collecter certaines des informations liées à la gestion des hôtes distants au lieu d'obtenir toutes les informations de tous les hôtes distants. Nous utilisons une autre variable d'ANSIBLE qui est la variable «registre» qui préserve les résultats des tâches du playbook et les utilise pour les tâches ultérieures.
Maintenant, nous voulons imprimer le nom des appareils hôtes distants, nous utilisons donc à nouveau une variable «nom». Ensuite, nous déboguons les tâches. Si la tâche est terminée, il affiche la sortie avec le message associé. Voici les tâches complètes de l'autorisation_ke_1.YML Playbook:
- Hôtes:
- tous
rassemble_facts: faux
Tâches:
- Nom: Rassemblez des faits
installation:
rassemble_subset:
- 'tous'
Enregistrement: recueil_fact_data
- Nom: Imprimer le nom d'hôte de Target Machine
déboguer:
msg: "rassemble_fact_data.anible_facts.ANSIBLE_HOSTNAME "
Après cela, nous utilisons les boutons Ctrl + X pour terminer le livre de jeu. Les informations sur l'hôte distant ciblé sont ensuite écrites dans le fichier d'inventaire en créant le fichier. Nous tapons la commande suivante pour générer l'inventaire:
[root @ maître anible] # nano hôte.YML
Dans l'hôte.Fichier d'inventaire YML, nous fournissons les informations de l'hôte en donnant les informations de base comme l'adresse IP Ansible, le nom d'utilisateur, le nom de la connexion, le numéro de port de l'hôte Ansible, etc.
Tous:
Hôtes:
Host1:
ANSIBLE_HOST: 192.168.7.dix
ANSIBLE_USER: IRIS
ANSIBLE_CONNECTION: SSH
ANSIBLE_PORT: 22
Fermez l'hôte.Fichier d'inventaire YML. Maintenant que l'hôte.Le fichier YML est mis à jour, nous exécutons le playbook anible pour vérifier si la connexion a été établie ou non. Nous écrivons la commande suivante:
[root @ Master ANSIBLE] # ANSIBLE-PLAYBOOK Autorized_key_1.yml -i hôte.YML
Après avoir exécuté la commande précédente, nous obtenons le résultat suivant. Comme vous le voyez, nous obtenons l'erreur qui indique qu'elle n'a pas réussi à se connecter à l'hôte via une connexion SSH et est inaccessible. C'est parce que nous n'avons pas fourni la paire de clés SSH au contrôleur anible.
Nous exécutons la commande qui suit pour donner au contrôleur la paire de clés SSH:
[root @ maître anible] # ssh-keygen -q -t rsa
Voici la sortie de la saisie de la commande précédente:
Nous appuyons simplement sur Entrée. Après cela, il montre les deux fichiers racine avec les touches SSH dans la sortie:
Maintenant, nous créons un autre livre de jeu pour le serveur de contrôle ANSIBLE et définissons la connexion SSH du serveur de contrôleur. Pour créer un autre livre de jeu, nous écrivons la commande «Nano» suivante:
[root @ maître anible] # nano autorisé_key_2.YML
Après avoir généré un autre livre de jeu, nous énumérons maintenant les hôtes, puis utilisons le module autorisé ANSIBLE. Dans ce module, nous écrivons d'abord le nom de l'hôte et l'état de l'utilisateur. Ensuite, nous passons le fichier de clé publique produit par l'appareil contrôleur que nous avons récemment généré à l'hôte distant cible.
- Hôtes:
- tous
rassemble_facts: faux
Tâches:
- Nom: Ajoutez la clé publique à Autorized_keys en utilisant le module ANSIBLE
Autorized_key:
Utilisateur: Iris
État: présent
clé: 'item'
avec_file:
- ~ /.ssh / id_rsa.pub
Utilisez la commande suivante pour exécuter le autorisé_key_2.YML Playbook avec l'hôte.Fichier d'inventaire YML et fichier de clé privée:
[root @ maître anible] # ANSIBLE-PLAYBOOK Autorized_key_2.yml -i hôte.yml --private-key / tmp / hôte.pem
La sortie suivante est le résultat de l'exécution du playbook susmentionné avec le fichier d'inventaire:
Comme vous pouvez le voir à partir de l'exemple fourni, nous avons réussi à implémenter le deuxième livre de jeu qui est le autorisé_key_2. Maintenant que nous avons une connexion établie entre le contrôleur et l'hôte distant, vérifions en exécutant le playbook un qui est le livre de jeu autorisé_ke_1 et voyez s'il s'exécute ou non:
[root @ Master ANSIBLE] # ANSIBLE-PLAYBOOK Autorized_key_1.yml -i hôte.YML
Voici la sortie de la commande précédente qui est exécutée avec succès:
Conclusion
Nous avons appris à connecter le contrôleur aux hôtes distants à l'aide du module de clé d'autorisation d'ANSIBLE. Nous avons développé l'exemple avec une description approfondie afin que l'approche de base du module d'autorisation soit simple à comprendre.