How to execute a shell script on a remote server using Ansible?

前端 未结 4 1446
一向
一向 2020-12-23 13:22

I am planning to execute a shell script on a remote server using Ansible playbook.

blank test.sh file:

touch test.sh

Playbook:

4条回答
  •  一整个雨季
    2020-12-23 13:48

    local_action runs the command on the local server, not on the servers you specify in hosts parameter.

    Change your "Execute the script" task to

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

    and it should do it.

    You don't need to repeat sudo in the command line because you have defined it already in the playbook.

    According to Ansible Intro to Playbooks user parameter was renamed to remote_user in Ansible 1.4 so you should change it, too

    remote_user: test_user
    

    So, the playbook will become:

    ---
    - 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
    

提交回复
热议问题