我在使用ansible执行python脚本时遇到了麻烦。
我有下一个ansible结构:
python_project
roles
prueba
files
prueba.py
tasks
prueba.yaml我的yaml如下:
- name: prueba script python playbook
hosts: localhost
tasks:
- name: run prueba.py
script: prueba.py我像这样执行它: ansible-playbook prueba.yaml,我得到以下错误:
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Could not find or
access 'prueba.py'\n
Searched in:\n\t/root/python_project/roles/prueba/tasks/files/pr ueba.py\n\t/root/python_project/roles/prueba/tasks/prueba.py\n\t/root/python_pro ject/roles/prueba/tasks/files/prueba.py\n\t/root/python_project/roles/prueba/tas ks/prueba.py on the Ansible Controller.\nIf you are using a module and expect th e file to exist on the remote, see the remote_src option"}有什么建议吗?
发布于 2021-06-02 20:00:05
我认为你在角色的定义上有问题。这是一个角色,而您希望它作为ansible角色工作吗?如果是这样的话,你应该改变一些事情。您应该有一个单独的剧本来调用此角色,并将此角色移动到您的角色文件夹中。如果这不是一个角色。实际上,您必须指定python脚本的路径:
- name: prueba script python playbook
hosts: localhost
tasks:
- name: run prueba.py
script: /root/python_project/roles/prueba/files/prueba.py我认为你想要使用角色。为了让它成为一个角色,你需要改变一些东西。tasks/main.yml (这是您的任务目录,您可以使用所需的名称创建yml,而不必使用main.yml)
- name: run prueba.py
script: prueba.py正如您在角色上看到的,tasks/main.yml不需要主机,tasks部分文件本身也不是一个任务部分。主机的逻辑将移动到调用角色的play。
在所需的任意路径上创建此文件: example_role_invoque.yml
- hosts: localhost
tasks:
- name: invocar rol
include_role: prueba我给你一个参考链接:ROLES
https://stackoverflow.com/questions/67803213
复制相似问题