Skip to content
This repository has been archived by the owner on Sep 6, 2019. It is now read-only.

{019} Ansible en ligne de commande

Hervé Leclerc edited this page Aug 1, 2014 · 3 revisions

Ansible peut être invoqué en ligne de commande pour effectuer des actions en parallèle sur plusieurs serveurs.

Vidéo : http://youtu.be/aQw8XIBjw2I

ansible –h pour avoir l’aide
ansible groupe-de-machines –i inventaire –m module  -a « paramètres du module »

exemples :

ansible targets –i azure_hosts –m ping
ansible webservers –i azure_hosts –m wait_for –a "port=80 timeout=2" 
ansible databases –i azure_hosts –m ping

Renvoie une structure json

Ce module tente la connexion sur les serveurs distants en parallèle si succès le module renvoi « pong »

awubuntum4 | success >> {
    "changed": false, 
    "ping": "pong"
}

awubuntum3 | success >> {
    "changed": false, 
    "ping": "pong"
}

Dans le cas d’une erreur on aurait un message équivalent à :

awubuntum2 | FAILED >> {
    "elapsed": 2, 
    "failed": true, 
    "msg": "Timeout when waiting for 127.0.0.1:80"
}

awubuntum1 | FAILED >> {
    "elapsed": 2, 
    "failed": true, 
    "msg": "Timeout when waiting for 127.0.0.1:80"
}

awubuntum2 | FAILED => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue

Pour l’instant dans notre tutorial les serveurs web ne sont pas installés. Cette erreur est normale :)

ansible webservers –i azure_hosts -m wait_for -a "port=22 timeout=2"

Test le port 22 sur les machines et renvoi des informations :

awubuntum1 | success >> {
    "changed": false, 
    "elapsed": 0, 
    "path": null, 
    "port": 22, 
    "search_regex": null, 
    "state": "started"
}

awubuntum2 | success >> {
    "changed": false, 
    "elapsed": 0, 
    "path": null, 
    "port": 22, 
    "search_regex": null, 
    "state": "started"
}

Le port 22 (SSH est accessible et up)