Exécution d'une commande simple localement
Dans cette étape, vous allez apprendre à utiliser le module d'action locale Ansible pour exécuter une commande simple sur la machine de contrôle. Cela vous aidera à comprendre l'utilisation de base et la syntaxe du module.
Tout d'abord, complétez le fichier /home/labex/project/execute_local_command.yml
.
Ajoutez le contenu suivant au fichier de playbook :
- name: Exécution d'une commande simple localement
gather_facts: false
hosts: localhost
tasks:
- name: Afficher un message localement
local_action:
module: command
cmd: echo "Hello, World!"
register: result
- name: Déboguer la sortie
debug:
var: result.stdout
gather_facts
: Cela spécifie si Ansible doit collecter des informations sur les hôtes cibles. Dans ce cas, il est défini sur false
, ce qui signifie que les informations ne seront pas collectées.
hosts
: Cela spécifie l'hôte cible sur lequel exécuter le playbook. Dans ce cas, le playbook sera exécuté sur l'hôte local car l'hôte cible est localhost
.
tasks
: Il s'agit d'une liste de tâches à exécuter.
local_action
: Cela indique que l'action doit être effectuée localement sur la machine de contrôle où Ansible est exécuté.
module
: Cela spécifie le module Ansible à utiliser pour l'action. Dans ce cas, il s'agit du module command
.
cmd
: Il s'agit de la commande réelle à exécuter. Dans ce cas, il s'agit de la commande shell echo "Hello, World!"
, qui affichera le message "Hello, World!" dans la console.
register
: Cela enregistre la sortie de la commande dans la variable result
pour une utilisation ultérieure dans le playbook.
debug
: Il s'agit du module Ansible utilisé pour afficher des informations de débogage.
var
: Il s'agit d'un paramètre du module debug
qui spécifie la variable à déboguer. Dans ce cas, il s'agit de result.stdout
, qui contient la sortie standard de la commande exécutée dans la tâche précédente.
En résumé, ce playbook exécute une commande simple echo "Hello, World!"
localement sur la machine de contrôle, enregistre la sortie, puis affiche la sortie en utilisant le module debug
.
Ensuite, affichez la sortie de la commande dans le playbook Ansible.
ansible-playbook /home/labex/project/execute_local_command.yml
Sortie exemple :
[WARNING]: Aucun inventaire n'a été analysé, seul localhost implicite est disponible
[WARNING]: La liste d'hôtes fournie est vide, seul localhost est disponible. Notez que
localhost implicite ne correspond pas à 'all'
PLAY [Local Action Module Challenge] *******************************************
TASK [Afficher un message localement] *************************************************
changed: [localhost]
TASK [Déboguer la sortie] ********************************************************
ok: [localhost] => {
"result.stdout": "Hello, World!"
}
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Ici, "result.stdout": "Hello, World!"
est la sortie de la commande echo "Hello, World!"
.