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

时间:2016-10-28 16:50:29

标签: ansible ansible-playbook ansible-2.x

我有一个需要很少角色才能首先运行的剧本,但出于某种原因,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/目录中的文件很少。所有都是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
    

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

  5. 我没有使用任何额外的开关来运行剧本,它在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
    

0 个答案:

没有答案