首页 > 解决方案 > 在ansible中,有没有办法注册一个角色的结果?

问题描述

如果另一个角色能够无错误地运行,我实际上是在尝试只运行一个特定的角色。这可能吗?

我已经尝试过这样的事情,但它没有按预期工作

tasks:
- include_role:
    name: user_role
  register: users
- include_role:
    name: another_role
  when: users is success

标签: ansibleansible-role

解决方案


看看注册的变量users。您会看到没有属性success。因此无法对其进行测试。例如

- debug:
    var: users

应该给(如果没有改变)

    "users": {
        "changed": false, 
        "include_args": {
            "name": "user_role"
        }
    }

Q:“有没有办法注册一个角色的结果?”

答:是的。这是。使用块错误处理。例如

    - block:
        - include_role:
            name: user_role
      rescue:
        - set_fact:
            role_success: false
        - meta: clear_host_errors

    - include_role:
        name: another_role
      when: role_success|default(true)

推荐阅读