首页 文章

ansible远程脚本执行登录本地机器

提问于
浏览
0

我有python脚本,基本上在远程机器上验证已安装的服务 . 这个脚本将在远程机器上运行,我使用ansible来调用这个脚本 . 我在将脚本记录到本地机器的文件时遇到了麻烦 .

test.yml (Ansible)

- name: Verifying route ,run script to analyse temp_route.txt file
        script: /scripts/verify.py {{ prox1 }},{{ ip }} {{ ip }}
        register: output

verify.py

#from pprint import pprint
logging.basicConfig(filename='script/logs/install.log',format='%(asctime)s | %(levelname)s | %(message)s', datefmt='%a %b %d %H:%M:%S %Z %Y', level=logging.INFO)

def func1():
    ----do something
    logging.info('%s %s',key, value)

我们所有的脚本都使用这种记录方式....除此之外,所有脚本都在本地运行 . 只有这个脚本在远程机器上运行 .

在运行脚本时,我找不到ansible错误路径 . 它似乎是在远程机器中搜索路径,这是不可用的

UPDATED

我有机器A所有脚本运行,我从该机器启动vm并使用ansible配置它 . 我有一个名为install.log的日志文件 . 所有其他脚本输出此文件中的日志 . 我想要在远程运行的verify.py也应输出install.log文件中的日志

这可以通过ansible来实现吗?

2 回答

  • 0

    script module复制Ansible计算机本地的脚本并将其复制到远程节点然后执行它 .

    如果要执行已在远程节点上的脚本,则可以使用commandshell模块来触发脚本 .

    或者,您可以先使用fetch任务从远程节点检索文件,然后使用脚本任务将其复制回来然后执行它 . 我很难想到这样做的理由,而不是通过命令/ shell任务 .

  • 0

    没有简单的方法从脚本写入本地计算机上的日志文件Ansible运行 - Ansible通过其SSH连接复制脚本,然后从远程主机执行它 .

    正如@ydaetskcoR在他们的回答中所说,一种解决方案是将日志写入远程文件并使用获取模块来检索它 .

    另一种选择是更改脚本以将日志消息打印到stdout和stderr,然后从那里访问可能进入日志的信息 - 从您注册的 output 变量,您将能够使用 debug: var=output.stdout_lines 访问内容,评估带有 output.rc 的脚本返回代码的条件,等等 .

相关问题