Saltar al contenido

¿Cómo ejecutar un script de shell en un servidor remoto usando Ansible?

Solución:

puedes usar texto módulo

Ejemplo

- name: Transfer and execute a script.
  hosts: all
  tasks:

     - name: Copy and Execute the script 
       script: /home/user/userScript.sh

local_action ejecuta el comando en el servidor local, no en los servidores que especifique en hosts parámetro.

Cambie su tarea “Ejecutar el script” a

- name: Execute the script
  command: sh /home/test_user/test.sh

y debería hacerlo.

No es necesario que repita sudo en la línea de comando porque ya lo ha definido en el libro de jugadas.

Según Ansible Intro to Playbooks user se cambió el nombre del parámetro a remote_user en Ansible 1.4, por lo que también debería cambiarlo

remote_user: test_user

Entonces, el libro de jugadas se convertirá en:

---
- name: Transfer and execute a script.
  hosts: server
  remote_user: test_user
  sudo: yes
  tasks:
     - name: Transfer the script
       copy: src=test.sh dest=/home/test_user mode=0777

     - name: Execute the script
       command: sh /home/test_user/test.sh

Es mejor usar script módulo para eso:
http://docs.ansible.com/script_module.html

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *