В ansible есть ли способ зарегистрировать результат роли? - PullRequest
1 голос
/ 01 февраля 2020

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

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

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

1 Ответ

1 голос
/ 01 февраля 2020

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

- debug:
    var: users

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

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

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

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

    - 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)
...