Назад | Перейти на главную страницу

Получите результат запуска certbot в докере в анзибле

я бегу Certbot в контейнере докера. Я использую ansible, чтобы запустить его через docker_compose.

Когда контейнер запускается, certbot требует немного времени, чтобы выполнить свою задачу, а затем контейнер закрывается (результаты выводятся в стандартный вывод и в журнал).

Но при автоматизации через ansible он запускает контейнер, а затем переходит к следующей задаче. Поэтому я не знаю, удалось ли выполнить процесс, я знаю только, что контейнер был запущен.

Как я могу заставить доступное время дождаться его выхода, чтобы я мог получить результат, запросив stdout или журнал?

Использовать wait_for модуль.

- name: run certbot container
  docker_compose:
    project_src: path-to-docker-compose
    state: present
  register: result

- name: wait for certbot container to exit
  when: result is success
  wait_for:
    path: logfile-or-something-created-by-certbot-on-success-or-failure
    state: present
    timeout: 20

Альтернатива: запустить вручную в shell модуль, но справиться с ошибкой сложнее.