首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ansible AWX:当.yml和.py文件位于Github中时,使用Ansible剧本触发python脚本

Ansible AWX:当.yml和.py文件位于Github中时,使用Ansible剧本触发python脚本
EN

Stack Overflow用户
提问于 2022-06-28 15:24:32
回答 1查看 210关注 0票数 0

我开始将AWX集成到我们的环境中,并且希望在那里移动&调度一些python脚本,但是我面临着使用Ansible剧本触发python脚本的问题。.YML和.PY位于相同的Github存储库和目录中。我触发了Ansible剧本,它按照下面2行(当然还有更多的代码)启动python脚本,一切都完成了,但脚本没有触发。以前,所有python脚本都位于本地主机上,并通过windows任务调度程序进行调度。

代码:

代码语言:javascript
复制
- name: Checking for duplicate clients

  script: duplicate_clients.py

似乎windows主机上的Python脚本甚至没有启动,因为我没有看到python在任务管理器中启动。

调试

代码语言:javascript
复制
    <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上时应该如何做)。

代码:

代码语言:javascript
复制
- name: Checking for duplicate clients
command: py -3 duplicate_clients.py

调试

代码语言:javascript
复制
> 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完成。

EN

回答 1

Stack Overflow用户

发布于 2022-06-30 12:42:52

因此,通过提供python可执行路径解决了这个问题。

代码语言:javascript
复制
- name: Checking for duplicate clients
  script: create_file.py
  args: 
    executable: '"C:\Program Files (x86)\Python\python.exe"'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72789217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档