Derioss's blog

basic ansible

Première prise en main d'ansible

Une courte introduction à ansible.

J’aborderais la version non-graphique.

Description

Ansible est un des outils d’automation phare, simple de prise en main et puissant. Il existe sous plusieurs formes :

La version graphique apporte une interface de monitoring des jobs qui peuvent être ‘schedule’, et surtout des profils utilisateurs.

Ce qui peut répondre à des besoins de sécurité, de travail en équipe avec le support de RedHat.

Il existe également une API fonctionnelle pour vos pipelines.

Elle n’apporte pas par-contre, à l’heure ou j'écris cette article, de possibilités d’automatisation plus poussées.

Pour avoir utilisé les deux, la vitesse de développement des projets est en faveur de la version ‘classique’.

Utilisation

Premier pas

installation

yum install ansible # centos/redhat
apt install ansible # debian's distri
dnf install ansible # fedora

Création de notre premier playbook

L’hôte est une machine linux, un centos7.

On va commencer par créer deux fichiers :

On peut mettre également des vars à ce niveau comme ansible_user, qui est l’identifiant de connection ssh de l’hôte.

[nomdugroupe]
hostname1|ip ansible_user=test
hostname2|ip

Nous allons afficher un world sur l’hôte en capturant le stdout dans une variable afin de l’afficher dans ansible.

- hosts: nomdugroupe
  tasks:
    - name: echo world
      shell: echo "world"
      register: stdout

    - name: Display stdout
      debug:
        msg: "{{ stdout }}"

On a donc l’hôte qui est renseigné et les commandes a effectué, ansible réalisant une connection de type ssh, il nous manquera soit un mot de passe, soit une clé. Pour le password, il y a différente manière de lui fournir :

--extra-vars "ansible_ssh_pass=valeur"
# on peut également lui demandé en prompt
--ask-pass
ansible-playbook -i hosts playbook.yml --ask-pass

Ce qui donne le résultat :