scripts script run resueltos paso hacer español ejercicios ejemplos como shell ansible ansible-playbook remote-server

shell - run - scripts linux ejercicios resueltos



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

Es mejor usar el módulo de script para eso:
script

Estoy planeando ejecutar un script de shell en un servidor remoto usando el libro de jugadas de Ansible.

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

Cuando ejecuto el libro de jugadas, la transferencia se realiza con éxito pero el script no se ejecuta.


puedes usar el módulo de script

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 el parámetro hosts .

Cambie su tarea "Ejecutar el script" a

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

y debería hacerlo.

No necesita repetir sudo en la línea de comando porque ya lo ha definido en el libro de jugadas.

De acuerdo con la introducción de Ansible a los remote_user de remote_user parámetro de user se renombró a remote_user en Ansible 1.4, por lo que también debe cambiarlo.

remote_user: test_user

Así, el playbook 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