Python ansible远程脚本执行';s登录本地计算机
我有一个python脚本,它基本上对远程机器上安装的服务进行验证。这个脚本将在远程机器上运行,我正在使用ansible调用这个脚本。我无法将脚本登录到本地机器上的文件中 test.yml(Ansible) 验证.pyPython ansible远程脚本执行';s登录本地计算机,python,ansible,ansible-playbook,Python,Ansible,Ansible Playbook,我有一个python脚本,它基本上对远程机器上安装的服务进行验证。这个脚本将在远程机器上运行,我正在使用ansible调用这个脚本。我无法将脚本登录到本地机器上的文件中 test.yml(Ansible) 验证.py #from pprint import pprint logging.basicConfig(filename='script/logs/install.log',format='%(asctime)s | %(levelname)s | %(message)s', datefmt
#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)
我们所有的脚本都使用这种日志记录方式……除此之外,所有脚本都在本地运行。只有此脚本在远程计算机上运行
运行脚本时,我发现一个可能的错误路径未找到。它似乎正在远程计算机中搜索路径,但该路径不可用
已更新
我有一台运行所有脚本的机器,我正在从该机器启动一个vm,并使用ansible对其进行配置。我有一个名为install.log的日志文件。
所有其他脚本都将日志输出到此文件中。我希望将在远程计算机上运行的verify.py也将日志输出到install.log文件中
是否可以通过ansible执行此操作?复制ansible计算机本地的脚本,并将其复制到远程节点,然后执行
如果要执行已在远程节点上的脚本,则可以使用或模块来触发该脚本
或者,您可以先使用任务从远程节点检索文件,然后使用脚本任务将其复制回来,然后执行它。我很难找到这样做的理由,而不是通过命令/shell任务。没有简单的方法从脚本Ansible运行写入本地计算机上的日志文件-Ansible通过SSH连接复制脚本,然后从远程主机执行 正如@ydaetskcoR在回答中所说的,一种解决方案是将日志写入远程文件,并使用fetch模块检索日志
另一个选项是更改脚本以将日志消息打印到stdout和stderr,然后访问从那里进入日志的信息-从您注册的
输出
变量,您可以使用debug:var=output.stdout\u行
访问内容,使用output.rc
等工具根据脚本的返回代码计算条件。是否可以使用绝对路径进行日志记录?这可能会导致问题
#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)