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

问题描述 投票:0回答:2

我有一个剧本,需要先运行几个角色,但由于某种原因,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
角色。

我尝试过的:

  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/
    目录中只有很少的文件。所有都是 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
    

    我删除了这些文件,看看这是否会改变任何东西,但没有运气。

我没有使用任何额外的开关来运行 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
ansible ansible-2.x
2个回答
5
投票

我也遇到了类似的问题,ansible 默默地忽略了我的角色。结果我搞砸了,我的文件位于

roles/myrolename/main.yml
而不是正确的
roles/myrolename/tasks/main.yml

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


0
投票

我在使用 Ansible 自动化平台 (AAP) 时遇到了类似的问题。结果我创建了模板并分配了它们

job_tags
,错误地认为这是为了组织它创建的模板和任务。

相反,它将它们传递给正在执行的剧本,因此仅从分配了这些

tags
的角色中选择任务。

TLDR:验证您没有为任务选择标签(或选择错误的标签)

© www.soinside.com 2019 - 2024. All rights reserved.