В ansible есть ли способ зарегистрировать результат роли?

По сути, я пытаюсь запустить определенную роль только в том случае, если другая роль могла работать без ошибок. Это возможно?

Я пробовал что-то подобное, но это не работает, как ожидалось

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

person bobcat    schedule 01.02.2020    source источник


Ответы (1)


Взгляните на зарегистрированную переменную users. Вы увидите, что атрибута success нет. Следовательно, нет возможности проверить это. Например

- debug:
    var: users

должен дать (если ничего не изменилось)

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

В: "Есть ли способ зарегистрировать результат роли?"

О: Да. Это. Используйте блокировать обработку ошибок. Например

    - 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)
person Vladimir Botka    schedule 01.02.2020