Services

Ansible

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Dernière mise à jour : 14/11/2022 à 23h49
Table des matières Ici, je vais noter ce que j'apprend sur Ansible et ce qui me semble pertinent.
Peut-être que si cet article devient trop long, il sera plus tard divisé en plusieurs...

Installation



Selon le site d'Ansible, il existe plusieurs méthodes :
  • les binaires
  • les dépôts (apt, dnf...)
  • pip

J'ai commencé par installé via apt mais l'installation ne m'a pas créé de dossier /etc/ansible.
J'ai donc essayé via la commande pip mais le résultat est identique.

Configuration de ssh



Il est nécessaire de pouvoir accéder en ssh à ses serveurs que l'on veut pouvoir gérer via ansible. Il faut pour cela utiliser la méthode de clé privée/publique. Rien de compliqué, plein de sites en parlent...

Quelques rappels de commandes.

Pour générer les clés :

Code BASH :
ssh-keygen -t ecdsa -b 521


Cette commande permet de générer une clé de type ecdsa avec la longueur maximale.
La page de manuel de ssh-keygen donne des infos sur les différentes types et les longueurs de clé que l'on peut générer en fonction de la mthode choisie.

Il est possible de générer une clé sans phrase de passe mais ce n'est pas le plus sécurisé...

Pour copier la clé sur le serveur distant :

Code BASH :
ssh-copy-id user@ip-serveur-distant -p port-serveur-ssh


Ansible en mode "CLI"



On peut utiliser "manuellement" en ligne de commande.

Par exemple:

Code BASH :
ansible transmission -m ping -i hosts.yaml --key-file /home/remi/.ssh/key_asus_fedora


  • -i permet de spécifier le fichier d'inventaire à utiliser, de base il utilise le fichier hosts
  • -m permet d'appeler un module, ici le module ping
  • transmission est l'hôte sur lequel on exécute la commande, défini dans le fichier d'inventaire
  • --key-file permet de spécifier la clé privée à utiliser (cf. les notions après)


Quelques notions à avoir en tête



Lorsqu'on exécute ansible, la connexion se fait avec l'utilisateur courant donc si la clé privée sur le serveur distant est celle de remi, lancer une commande ansible avec root ne fonctionne pas... Il faut alors spécifier manuellement la clé (avec l'option --key-file de la commande ansible

ansible.cfg



ansible.cfg est le fichier de configuration d'ansible.

Si celui-ci n'est pas présent dans /etc, il est possible de le générer via la commande :

Code BASH :
ansible-config init --disabled > ansible.cfg


Cette commande n'est valable que depuis ansible 2.12. Pour les versions antérieures, il est possible d'aller chercher des exemples de ficihers ansible.cfg sur le github du projet. Par exemple pour la version 2.10 : [url=github de la version]https://github.com/ansible/ansible/tree/stable-2.10[/url]