я бегу 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
модуль, но справиться с ошибкой сложнее.