ansible 在远程端执行python脚本报错

环境:

1.主机1(虚拟云桌面):

①IP:192.168.0.97

②系统:银河麒麟

③安装了ansible:
图片1

④ansible.cfg的配置:
图片2

⑤hosts的配置

图片3

⑥ru_python_script.yml的配置

图片4

⑦执行命令及报错:

2.主机2(虚拟云桌面)被控制端:

①IP:192.168.0.123

②系统:银河麒麟

这个看着全是找不到的报错信息,还是挨个检查下配置信息。

你这个运行命令应该使用 ansible-playbook ,然后去掉其他多余的参数,我看实际需要的内容你已经在yaml文件里提供了

天马说的是对的,运行playbook的话使用的是ansible-playbook命令,所以直接运行ansible-playbook web run_python_script.yml就行,因为你的ansible.cfg里配置了inventory 所以就不用通过-i参数指定了,还有run_python_script.yml这个playbook写的可能也有点问题,被控端可能没有你指定的pyautoguitest.py这个脚本文件,你可以在运行之前使用copy模块将这个脚本文件拷贝到被控端,之后再通过script模块运行这个脚本文件

你使用7执行的命令就相当于没用playbook,直接使用的ansible的ad-hoc模式执行的,可以改为ansible web -m script -a /home/yy/PycharmProjects/isexistsimsun/pyautoguitest.py执行

谢谢老师,确实如此,我找到原因了,我的python脚本在/home下面,但是ansible一直在root下面找python脚本,我把python脚本复制到root下面,playbook里脚本路径改了一下,可以了

谢谢老师,理解了,但是ansible默认是去root下面找对应的脚本文件?

好的,谢谢老师

但是我不太理解为什么ansible一直从root下去找我的脚本文件,我在yml文件里面已经指明了脚本的绝对路径了

我现在yml改为这个配置:
yy1
执行按照这个执行:
yy2
执行是成功了,但是我不太理解为什么我在yml文件里指明了脚本的路径/home下,不去这个/home下面找我们python脚本执行

按理说就是playbook里面指定的路径,可能是有其他问题导致的,你可以把playbook改为之前的,之后用下ansible-playbook run_python_script.yml -vv看下结果吗

还有这个怎么改为本地执行了,之前不是去web主机执行的吗?

如果两个v的信息不太详细,可以多加几个v

这个看着可能是root用户没有权限访问你这个py文件,你可以改下host里user和password的配置,改为创建这个文件的用户

hosts里的配置不是为了连接到被控制端吗?我把脚本从/home下复制到/root下修改了ansible-playbook脚本的路径,再去执行,又报这个错误

这个看样子是已经开始执行了,但是它把这个py文件当成了bash脚本来运行了,所以会报这些错误

这种怎么解决呢?老师

换成其他模块就行了,使用command模块执行python 脚本路径

就是你用的这个模块