Comment exécuter un script shell sur un serveur distant à l'aide de Ansible?
J'ai l'intention d'exécuter un script shell sur un serveur distant à l'aide de Ansible playbook.
test.sh:
touch test.txt
Playbook:
---
- name: Transfer and execute a script.
hosts: server
user: test_user
sudo: yes
tasks:
- name: Transfer the script
copy: src=test.sh dest=/home/test_user mode=0777
- name: Execute the script
local_action: command sudo sh /home/test_user/test.sh
Quand je lance le playbook, le transfert se produit avec succès, mais le script n'est pas exécuté.
- N'est pas la script module de le faire?
Vous devez vous connecter pour publier un commentaire.
local_action
exécute la commande sur le serveur local, non pas sur les serveurs que vous spécifiez danshosts
paramètre.Changer votre "Exécuter le script" tâche de
et elle doit le faire.
Vous n'avez pas besoin de répéter sudo dans la ligne de commande parce que vous l'avez défini déjà dans le playbook.
Selon Ansible Intro pour tablettes playbook
user
paramètre a été renomméremote_user
dans Ansible 1.4, donc vous devez le changer, tropDonc, la playbook est devenu:
checkServiceStatus splunk
. Comment puis-je y parvenir?vous pouvez utiliser script module
Exemple
Il est préférable d'utiliser
script
module pour:http://docs.ansible.com/script_module.html
template
suivie parcommand sh...