IREX - Ansible: Établissement d'une connexion ssh dans un playbook ansible.

Ansible nous procure une capacité d'exécuter des tâches, faire des configurations et déployer les logiciels depuis un nœud master. Mais avant, une connexion via ssh est nécessaire.

 · 2 min read


  1. Qu'est ce que Ansible?

  2. Ansible est une plate-forme logicielle libre pour la configuration et la gestion des ordinateurs. Elle combine le déploiement de logiciels multi-nœuds, l'exécution des tâches ad-hoc et la gestion de configuration. Pour pouvoir effectuer des configurations sur certains des noeuds (appelés noeuds manager), nous avant besoin d'établir une connexion via ssh avec le noeud master. Mais donc, comment faire cela de façon automatique dans notre playbook ansible de déploiement? la réponse à cette question fera l'objet de cet article.


  3. Quels sont les prérequis?

  4. Avant d'établir cette connexion, nous aurons besoin des informations citées ci-dessous relative au noeud sur lequel seront effectuer les configurations:

    • du nom de l'utilisateur avec lequel on se connectera sur le noeud à manager
    • le mot de passe de l'utilisateur en question
    • l'adresse IP ou le nom d'hôte du noeud en question.

    Nous devons noter ici que pour des mesures de sécurité, ces valeurs pourront être variabilisées et cryptées avec ansible-vault (voire cette documentation pour plus d'explication sur son utilisation). Dans ce cas d'exemple, on fera une simple utilisation pour démonstration.


  5. Généreration d'une paire de clés ssh par le noeud master
  6. Pour ce faire, on se rassure d'avoir supprimé l'ancienne clé présente afin d'éviter les prompts lors de l'exécution du code. Grâce à l'outil ssh-keygen, nous allons générer une paire de clés (privée et publique) qui se retrouvera dans le dossier personnel et par défaut de l'utilisateur connecté sur le noeud master au moment de l'exécution de la commande. Le bout de code ci-dessous nous montre comment le faire.

    • Suppression de l'ancienne clé ssh

    • suppresion de la paire de clés

    • Génération de la nouvelle clé

    • generation de la paire de clés


  7. Copie de la clé publique vers le noeud manager
  8. La copie de la clé publique sur le noeud gérer est nécessaire pour éviter que le noeud master ai à s'authentifier lors de la demande de connexion. L'outil sshpass nous sevira pour ce faire et donc on peut se rassurer que celui-ci soit installer avant son utilisation.

    • Installation de l'outil sshpass

    • installation de sshpass

    • Copie de la clé publique

    • copie de la clé


  9. Playbook exemple
  10. Le playbook sur l'image ci-dessous nous donne une idée générale sur les différentes tâches qui doivent être exécutées afin que la connexion soit parfaitement établir entre le noeud master et le noeud sur lequel se fera l'installation ou les configurations. Nous arons comme ansible le demande, d'un fichier inventaire qui lui contiendra le/les hôte(s) sur lequel sera exécute notre code. Nous le nommerons inventory.ini et son contenu est présenté ci-dessous.

    • Contenu du fichier inventory.ini
    • Notre fichier inventory.ini contiendra cette ligne de code:
      fichier inventaire
    • Contenu du fichier playbook.yml
    • playbook exemple

    • Resultat de l'exécution
    • resultat de l'exécution

    Une fois cette connexion établie, nous pouvons définir par la suite nos autres tâches d'installation et de configuration des logiciels sur le noeud manager.

Huliam Kenfack

Ingénieur Cloud / DevOps

No comments yet

No comments yet. Start a new discussion.

Add Comment