我有一个剧本,它需要很少的角色才能先运行,但是出于某种原因,ansible一直忽略其中的一个角色,没有任何输出。
示例操作手册:
---
- hosts: mirrors
roles:
- timezone
- console
- core
- nginx-reverse-proxy角色nginx-reverse-proxy需要nginx角色,因此文件roles/nginx-reverse-proxy/meta/main.yml包含:
---
# Dependencies required for nginx-reverse-proxy role
dependencies:
- nginx当我像这样运行剧本:ansible-playbook -i mirrors/hosts.yml mirrors/playbook.yml时,ansible到达nginx-reverse-proxy角色,然后立即从roles/nginx-reverse-proxy/tasks/main.yml开始执行任务,完全忽略了roles/nginx-reverse-proxy/meta/main.yml中的nginx角色。
我试过的是:
nginx角色直接放在core之后和nginx-reverse-proxy之前的剧本中-- ansible忽略了nginx角色,并立即跳到nginx-reverse-proxy。roles/nginx/tasks/main.yml添加一些胡言乱语,看看会发生什么,但是ansible甚至没有尝试执行它。没有错误,甚至没有尝试解析文件。ansible-playbook开关的-vvvv,但它没有告诉我任何有用的东西。nginx角色本身在roles/nginx/tasks/目录中几乎没有文件。所有这些都是包含在roles/nginx/tasks/main.yml中有条件的yml文件,如下所示:
--包括: install_nginx_core.yml when: not nginx_extras -包括: install_nginx_extras.yml when: nginx_extras - include: setup_ssl.yml : setup_fastcgi.yml #这也将安装php5-fpm时: setup_fastcgi
我删除了这些文件,看看是否有任何改变,但没有运气。我没有使用任何额外的开关来运行游戏手册,它在2.0版的时候运行得很好。但现在我上的是2.1.2.0,我被困住了。
包含tree roles/nginx**:**输出的编辑
roles/nginx
|-- defaults
| `-- main.yml
|-- meta
| `-- main.yml
|-- tasks
| |-- install_nginx_core.yml
| |-- install_nginx_extras.yml
| |-- main.yml
| |-- setup_fastcgi.yml
| `-- setup_ssl.yml
`-- templates
|-- fastcgi.j2
`-- ssl.conf发布于 2021-09-16 18:27:45
我也有一个类似的问题,ansible默默地忽略了我的角色。结果发现我在roles/myrolename/main.yml而不是在适当的roles/myrolename/tasks/main.yml
这可能不是OP的问题,但我希望这能节省我浪费在这个愚蠢错误上的时间。
https://stackoverflow.com/questions/40309685
复制相似问题