Sil*_*ind 2 ansible ansible-2.x
我有一本剧本,需要先运行几个角色,但由于某种原因,ansible 始终忽略其中一个角色,而没有任何输出。
示例剧本:
---
- hosts: mirrors
roles:
- timezone
- console
- core
- nginx-reverse-proxy
Run Code Online (Sandbox Code Playgroud)
角色nginx-reverse-proxy需要nginx角色,因此文件roles/nginx-reverse-proxy/meta/main.yml包含:
---
# Dependencies required for nginx-reverse-proxy role
dependencies:
- nginx
Run Code Online (Sandbox Code Playgroud)
当我像这样运行剧本时:ansible-playbook -i mirrors/hosts.yml mirrors/playbook.yml,ansible 到达nginx-reverse-proxy角色,然后立即开始执行任务,roles/nginx-reverse-proxy/tasks/main.yml完全忽略nginx来自 的角色roles/nginx-reverse-proxy/meta/main.yml。
我尝试过的:
nginx角色直接放入剧本中- ansible 忽略了角色并立即跳到。corenginx-reverse-proxynginxnginx-reverse-proxyroles/nginx/tasks/main.yml看看会发生什么,但 ansible 甚至不尝试执行它。没有错误,就像它甚至没有尝试解析文件一样。ansible-playbook使用switch运行-vvvv,但它没有告诉我任何有用的信息。该nginx角色本身在目录中只有很少的文件roles/nginx/tasks/。所有这些都是有条件包含的 yml 文件,roles/nginx/tasks/main.yml如下所示:
---
- include: install_nginx_core.yml
when: not nginx_extras
- include: install_nginx_extras.yml
when: nginx_extras
- include: setup_ssl.yml
- include: setup_fastcgi.yml
# This will also install php5-fpm
when: setup_fastcgi
Run Code Online (Sandbox Code Playgroud)
我删除了这些文件,看看这是否会改变任何东西,但没有运气。
我没有使用任何额外的开关来运行 playbook,它在 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
Run Code Online (Sandbox Code Playgroud)
我也遇到了类似的问题,ansible 默默地忽略了我的角色。结果我搞砸了,我的文件放在了roles/myrolename/main.yml正确的位置roles/myrolename/tasks/main.yml
这可能不是OP遇到的问题,但我希望这可以节省其他人在这个愚蠢的错误上浪费的时间。
| 归档时间: |
|
| 查看次数: |
2035 次 |
| 最近记录: |