Exécution de scripts sur des hôtes distants
L'un des cas d'utilisation les plus courants d'Ansible est l'exécution de scripts sur des hôtes distants. Cela peut être utile pour diverses tâches, telles que l'exécution de scripts de maintenance système, le déploiement d'applications ou la résolution d'incidents ponctuels.
Pour exécuter un script sur un hôte distant à l'aide d'Ansible, vous pouvez utiliser le module script. Ce module vous permet de copier un script local sur l'hôte distant et de l'exécuter.
Voici un exemple de l'utilisation du module script :
- hosts: webservers
tasks:
- name: Exécuter un script sur des hôtes distants
script: /path/to/script.sh
Dans cet exemple, le fichier script.sh est situé sur le nœud de contrôle Ansible et sera copié et exécuté sur tous les hôtes du groupe "webservers".
Vous pouvez également passer des arguments au script en utilisant le paramètre args :
- hosts: webservers
tasks:
- name: Exécuter un script avec des arguments
script: /path/to/script.sh
args:
- arg1
- arg2
Dans ce cas, le script sera exécuté avec les arguments arg1 et arg2.
Si vous avez besoin de capturer la sortie du script, vous pouvez utiliser le mot clé register pour stocker la sortie dans une variable :
- hosts: webservers
tasks:
- name: Exécuter un script et capturer la sortie
script: /path/to/script.sh
register: script_output
- name: Afficher la sortie du script
debug:
var: script_output.stdout
Dans cet exemple, la sortie du script est stockée dans la variable script_output.stdout, qui peut ensuite être affichée ou utilisée dans des tâches ultérieures.
Vous pouvez également utiliser le mot clé become pour exécuter le script avec des privilèges élevés (par exemple, en tant qu'utilisateur root) :
- hosts: webservers
tasks:
- name: Exécuter un script avec des privilèges élevés
script: /path/to/script.sh
become: true
Cela exécutera le script avec sudo sur les hôtes distants.
En utilisant le module script, vous pouvez facilement exécuter des scripts sur des hôtes distants, ce qui en fait un outil puissant pour automatiser une large gamme de tâches avec LabEx.