簡體   English   中英

Ansible劇本腳本失敗

[英]Ansible playbook script failure

在Playbook下方運行時出錯。 python腳本在我的主服務器上,我希望它在兩個從屬服務器上運行。 不知道怎么了

luckee@zarvis:~/playbooks$ ansible-playbook runscript.yml 

PLAY [droplets] ****************************************************************

TASK [setup] *******************************************************************
ok: [CentOS1]
ok: [CentOS2]

TASK [Run python script] *******************************************************
fatal: [CentOS1]: FAILED! => {"changed": false, "cmd": "/home/luckee/python/userfind.py", "failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2}
fatal: [CentOS2]: FAILED! => {"changed": false, "cmd": "/home/luckee/python/userfind.py", "failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2}

NO MORE HOSTS LEFT *************************************************************
        to retry, use: --limit @runscript.retry                                                                                                                                                 

PLAY RECAP *********************************************************************                                                                                                                
CentOS1                    : ok=1    changed=0    unreachable=0    failed=1                                                                                                                     
CentOS2                    : ok=1    changed=0    unreachable=0    failed=1                                                                                                                     

luckee@zarvis:~/playbooks$ 

這是劇本。

---
 - hosts: droplets
   remote_user: root

   tasks:
   - name: Run python script
     command: /home/luckee/python/userfind.py
...

期待您的幫助!

您嘗試在遠程主機上執行本地文件。

如果要遠程運行它,則首先需要傳輸它或使用腳本模塊 它首先將文件傳輸到遠程主機,然后執行它。

- name: Run python script
  script: /home/luckee/python/userfind.py

如果要在本地運行腳本,請使用委托:

- name: Run python script
  command: /home/luckee/python/userfind.py
  delegate_to: localhost

要顯示任務的輸出,您首先需要注冊結果並使用調試任務將其打印出來。

- name: Any task
  ...
  register: result

- name: Show result
  debug: msg="{{ result.stdout }}"

我認為您首先需要將腳本傳輸到遠程主機,然后運行它:

---
 - hosts: droplets
   remote_user: root

   tasks:
   - name: copy the script to the remote host
     copy:
       src: userfind.py
       dest: /tmp/userfind.py
       mode: 0777

   - name: Run python script
     command: python /tmp/userfind.py

根據您的要求修復路徑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM