Рейтинг:0

Утверждают, что работают в Ansible, но не в AWX

флаг hu

Я переключился на AWX для управления своими плейбуками и не могу понять эту проблему с помощью assert. Вот роль, которую я подготовил:

- имя: Запустить тестовую среду
  docker_compose:
    имя_проекта: "тестирование"
    определение:
      версия: '3.7'
      Сервисы:
        нгинкс:
          изображение: nginx:alpine
  регистр: вывод

- имя: сохранить вывод
  отлаживать:
    переменная: вывод

- name: утверждать, что контейнер запущен
  утверждать:
    что:
      - "nginx.testing_nginx_1.state.running"

Когда я запускаю его с помощью команды ansible-playbook, все работает хорошо, и задачи assert возвращают следующее:

TASK [test_role: подтвердить, что контейнер запущен] ********************************************** *************************************************
хорошо: [testhost] => {
    «изменено»: ложь,
    "msg": "Все утверждения пройдены"
}

Но когда я запускаю ту же самую пьесу, используя AWX, я получаю:

TASK [test_role: подтвердить, что контейнер запущен] *******************************
фатальный: [testhost]: FAILED! => {"msg": "Условная проверка 'nginx.testing_nginx_1.state.running' не удалась. Ошибка: ошибка при оценке условного выражения (nginx.testing_nginx_1.state.running): 'nginx' не определен"}

Кто-нибудь знает, почему это происходит?

Michael Hampton avatar
флаг cz
Чего-то не хватает. Вы не показали плейбук, задачу или что-то еще, что определяет nginx.
dywan666 avatar
флаг hu
Я все показал. Я взял это из документации модуля: https://docs.ansible.com/ansible/latest/collections/community/docker/docker_compose_module.html#ansible-collections-community-docker-docker-compose-module - пожалуйста, возьмите добычу на последнем примере.
Michael Hampton avatar
флаг cz
Вау, это не очень хорошо задокументировано. Кажется, что эти факты заполняются для всех контейнеров, которые вы объявили в docker-compose.yml, всякий раз, когда вы вызываете этот модуль. Или, по крайней мере, это то, что они подразумевают. Я подозреваю, что вам следует посмотреть на «выход» предыдущей задачи.
dywan666 avatar
флаг hu
Ты прав. Я вижу, что в моем случае ansible_facts заполняется переменной nginx. Так почему же это не работает в AWX?
Zeitounator avatar
флаг fr
Какая версия ansible используется на вашей установке awx? Могу поспорить, что он отличается и старше, чем тот, который вы запускаете вручную. Попробуйте установить ту же версию в virtualenv локально и запустить с ней плейбук. Вы получаете ту же ошибку?
dywan666 avatar
флаг hu
Я решил просто использовать информацию из вывода, немного изменил свои плейбуки, и все работает правильно как с AWX, так и с локального запуска.

Ответить или комментировать

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