Script

以前我不知道有 script 模組,所以要執行自己的腳本,都是先把腳本複製過去,再用 shell/command 去執行。

有了 script 模組,就不需要這麼麻煩了,他會幫你處理掉複製腳本的事情。

Playbook 範例如下

---
- name: Test script module
  hosts: all

  tasks:
  - name: Script
    script: ./scripts/hello.sh John
    register: shell_result

  - debug:
      var: shell_result.stdout_lines

然後在 scripts 目錄下放一個 hello.sh 的腳本,hello.sh 這個腳本會印出 Hello 的字串。

執行這個 playbook 以後,就會看到結果

PLAY [Test script module] **********************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
ok: [192.168.11.11]

TASK [Script] **********************************************************************************************************
changed: [192.168.11.11]

TASK [debug] ***********************************************************************************************************
ok: [192.168.11.11] => {
    "shell_result.stdout_lines": [
        "Hello John"
    ]
}

PLAY RECAP *************************************************************************************************************
192.168.11.11              : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

這樣就方便多了,不需要先複製,再執行。

參考資料