簡體   English   中英

Ansible AWX:當 .yml 和 .py 文件位於 Github 中時,使用 Ansible playbook 觸發 python 腳本

[英]Ansible AWX: trigger python script using Ansible playbook when .yml and .py files are located in Github

我開始將 AWX 集成到我們的環境中,並希望在那里移動和安排一些 python 腳本,但我遇到了使用 Ansible playbook 觸發 python 腳本的問題。 .YML 和 .PY 位於同一個 Github 存儲庫和目錄中。 我觸發了 Ansible playbook,它按照以下 2 行啟動 python 腳本(當然還有更多代碼),一切正常,但沒有觸發腳本。 以前所有的 python 腳本都位於本地主機上,並通過 Windows 任務調度程序進行調度。

代碼:

- name: Checking for duplicate clients

  script: duplicate_clients.py

似乎 Windows 主機上的 Python 腳本甚至沒有啟動,因為我沒有在任務管理器中看到 python 啟動。

調試

    <server_XXX> PUT "/runner/project/MISC/duplicate_clients.py" TO "C:\Users\C017317\AppData\Local\Temp\ansible-tmp-1656571782.4292357-31-141461256091413\duplicate_clients.py"
EXEC (via pipeline wrapper)
EXEC (via pipeline wrapper)
changed: [server_XXX] => {
    "changed": true,
    "rc": 0,
    "stderr": "#< CLIXML<Objs Version=\"1.1.0.1\" xmlns=\"http://schemas.microsoft.com/powershell/2004/04\"><Obj S=\"progress\" RefId=\"0\"><TN RefId=\"0\"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N=\"SourceId\">1</I64><PR N=\"Record\"><AV>Preparing modules for first use.</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>",
    "stderr_lines": [
        "#< CLIXML<Objs Version=\"1.1.0.1\" xmlns=\"http://schemas.microsoft.com/powershell/2004/04\"><Obj S=\"progress\" RefId=\"0\"><TN RefId=\"0\"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N=\"SourceId\">1</I64><PR N=\"Record\"><AV>Preparing modules for first use.</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>"
3…
META: ran handlers

但是,我嘗試了一種不同的方法來啟動 python 腳本(因為我不確定當腳本位於 Github 上時應該如何完成)。

代碼:

- name: Checking for duplicate clients
command: py -3 duplicate_clients.py

調試

> EXEC (via pipeline wrapper)
Using module file /usr/local/lib/python3.8/site-packages/ansible/modules/command.py
Pipelining is enabled.
EXEC (via pipeline wrapper)
[WARNING]: No python interpreters found for host
server_XXX (tried ['python3.10', 'python3.9',
'python3.8', 'python3.7', 'python3.6', 'python3.5', '/usr/bin/python3',
'/usr/libexec/platform-python', 'python2.7', 'python2.6', '/usr/bin/python',
'python'])
fatal: [server_XXX]: FAILED! => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,

似乎它在 linux 路徑上尋找 python,盡管目標主機是 windows。

這里的 python 腳本不是問題,因為它只是創建一個測試文件。 在本地運行腳本以 RC=0 完成。

所以這個問題已經通過提供 python 可執行路徑解決了。

- name: Checking for duplicate clients
  script: create_file.py
  args: 
    executable: '"C:\Program Files (x86)\Python\python.exe"'

暫無
暫無

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

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