Как в ansible плейбуке дождаться запуска gitlab в докер контейнере?
Чтобы дождаться запуска GitLab в Docker контейнере в Ansible плейбуке, можно использовать модуль community.docker.docker_compose
или community.docker.docker_container
, а затем применить модуль wait_for
или wait_for_http
для проверки доступности сервиса. Основная идея заключается в том, чтобы дождаться, пока веб-интерфейс GitLab будет доступен.
Пример плейбука для ожидания запуска GitLab:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
--- - name: Deploy and wait for GitLab to start hosts: your_target_host become: true tasks: - name: Start GitLab using Docker Compose community.docker.docker_compose: project_src: /path/to/docker-compose.yml state: present restarted: true - name: Wait for GitLab to start (HTTP check) wait_for: host: 127.0.0.1 # Используйте IP или хостнейм вашего GitLab port: 80 # Укажите порт, на котором работает GitLab (например, 80 или 443) delay: 10 # Задержка перед началом проверок (в секундах) timeout: 300 # Максимальное время ожидания (в секундах) state: started # Ожидаемое состояние - запущен connect_timeout: 5 msg: "GitLab is not available after waiting period." - name: Ensure GitLab is responding on HTTP wait_for_http: url: http://127.0.0.1/ # URL вашего GitLab delay: 10 # Задержка перед началом проверок timeout: 300 # Максимальное время ожидания status_code: 200 # Ожидаемый статус HTTP validate_certs: no # Используйте no, если сертификаты самоподписанные msg: "GitLab is not responding on HTTP." |
Объяснение:
- Запуск GitLab с помощью
docker_compose
:- Модуль
community.docker.docker_compose
запускает контейнеры, используяdocker-compose.yml
. - Параметр
restarted: true
перезапускает контейнеры, если они уже запущены.
- Модуль
- Модуль
wait_for
:- Используется для проверки доступности порта (например, 80 для HTTP или 443 для HTTPS).
- Параметры:
delay
: задержка перед началом проверок.timeout
: максимальное время ожидания, после которого проверка будет считаться неудачной.state: started
: проверяет, что порт открыт и сервис доступен.
- Модуль
wait_for_http
:- Проверяет доступность GitLab по HTTP/HTTPS, выполняя запрос к указанному URL.
- Ожидает конкретный статус-код (например,
200 OK
), что подтверждает, что GitLab успешно запущен.
Примечания:
- Убедитесь, что порты и URL-адреса, которые вы проверяете, соответствуют конфигурации вашего GitLab.
- Если GitLab работает на нестандартном порту или через прокси, скорректируйте
Recommended Posts
Плейбук Ansible по развертыванию haproxy
15.02.2024