gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 09:12:52 25 4
gpt4 key购买 nike

我有一个剧本,需要先运行几个角色,但由于某种原因,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 -iMirrors/hosts.ymlMirrors/playbook.yml,ansible达到nginx-reverse-proxy角色并且然后立即开始执行 roles/nginx-reverse-proxy/tasks/main.yml 中的任务,完全忽略 roles/nginx-reverse-proxy/meta 中的 nginx 角色/main.yml.

我尝试过的:

  1. core 之后和 nginx-reverse-proxy 之前将 nginx 角色直接放入 playbook - ansible 忽略了 nginx > 角色并立即跳至 nginx-reverse-proxy
  2. 将一些乱码放入roles/nginx/tasks/main.yml中看看会发生什么,但ansible甚至不尝试执行它。没有任何错误,就像它甚至没有尝试解析文件一样。
  3. 使用 -vvvv 开关运行 ansible-playbook,但它没有告诉我任何有用的信息。
  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

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

我没有使用任何额外的开关来运行该剧本,并且它在 2.0 版本左右运行良好。但现在我在 2.1.2.0 上并且陷入困境。

[编辑]包括树角色/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 默默地忽略了我的角色。结果我搞砸了,我的文件位于 roles/myrolename/main.yml 而不是正确的 roles/myrolename/tasks/main.yml

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

关于ansible - 为什么 ansible 默默地忽略一个角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40309685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com