我开始将AWX集成到我们的环境中,并且希望在那里移动&调度一些python脚本,但是我面临着使用Ansible剧本触发python脚本的问题。.YML和.PY位于相同的Github存储库和目录中。我触发了Ansible剧本,它按照下面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。
这里的python脚本不是一个问题,因为它只是创建一个测试文件。本地运行脚本可以使用RC=0完成。
发布于 2022-06-30 12:42:52
因此,通过提供python可执行路径解决了这个问题。
- name: Checking for duplicate clients
script: create_file.py
args:
executable: '"C:\Program Files (x86)\Python\python.exe"'https://stackoverflow.com/questions/72789217
复制相似问题