首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么ansible会默默地忽略一个角色?

为什么ansible会默默地忽略一个角色?
EN

Stack Overflow用户
提问于 2016-10-28 16:50:29
回答 1查看 1.6K关注 0票数 2

我有一个剧本,它需要很少的角色才能先运行,但是出于某种原因,ansible一直忽略其中的一个角色,没有任何输出。

示例操作手册:

代码语言:javascript
复制
---
- hosts: mirrors
  roles:
    - timezone
    - console
    - core
    - nginx-reverse-proxy

角色nginx-reverse-proxy需要nginx角色,因此文件roles/nginx-reverse-proxy/meta/main.yml包含:

代码语言:javascript
复制
---
# 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角色。

我试过的是:

  1. nginx角色直接放在core之后和nginx-reverse-proxy之前的剧本中-- ansible忽略了nginx角色,并立即跳到nginx-reverse-proxy
  2. roles/nginx/tasks/main.yml添加一些胡言乱语,看看会发生什么,但是ansible甚至没有尝试执行它。没有错误,甚至没有尝试解析文件。
  3. 运行带有ansible-playbook开关的-vvvv,但它没有告诉我任何有用的东西。
  4. 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**:**输出的编辑

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2021-09-16 18:27:45

我也有一个类似的问题,ansible默默地忽略了我的角色。结果发现我在roles/myrolename/main.yml而不是在适当的roles/myrolename/tasks/main.yml

这可能不是OP的问题,但我希望这能节省我浪费在这个愚蠢错误上的时间。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40309685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档