我有一个需要很少角色才能首先运行的剧本,但出于某种原因,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
开始执行任务,完全忽略nginx
角色roles/nginx-reverse-proxy/meta/main.yml
}。
我尝试了什么:
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文件,有条件地像这样:
---
- 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
我删除了这些文件以查看是否有任何改变,但没有运气。
我没有使用任何额外的开关来运行剧本,它在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