环境:
1.主机1(虚拟云桌面):
①IP:192.168.0.97
②系统:银河麒麟
③安装了ansible:
④ansible.cfg的配置:
⑤hosts的配置
⑥ru_python_script.yml的配置
⑦执行命令及报错:
2.主机2(虚拟云桌面)被控制端:
①IP:192.168.0.123
②系统:银河麒麟
环境:
1.主机1(虚拟云桌面):
①IP:192.168.0.97
②系统:银河麒麟
③安装了ansible:
④ansible.cfg的配置:
⑤hosts的配置
⑥ru_python_script.yml的配置
⑦执行命令及报错:
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改为这个配置:
执行按照这个执行:
执行是成功了,但是我不太理解为什么我在yml文件里指明了脚本的路径/home下,不去这个/home下面找我们python脚本执行
按理说就是playbook里面指定的路径,可能是有其他问题导致的,你可以把playbook改为之前的,之后用下ansible-playbook run_python_script.yml -vv
看下结果吗
还有这个怎么改为本地执行了,之前不是去web主机执行的吗?
如果两个v的信息不太详细,可以多加几个v
这个看着可能是root用户没有权限访问你这个py文件,你可以改下host里user和password的配置,改为创建这个文件的用户
这个看样子是已经开始执行了,但是它把这个py文件当成了bash脚本来运行了,所以会报这些错误
这种怎么解决呢?老师
换成其他模块就行了,使用command模块执行python 脚本路径
就是你用的这个模块