blackandred.server_docker_project
Деплоймент Docker-проекта
Автоматизированный деплоймент Docker-окружения из GIT, который включает в себя:
- интеграцию с systemd
- конфигурацию .env, специфичную для продакшена
- конфигурацию .env, специфичную для тестового сервера (когда: хост равен localhost)
- поддержку Makefile для управления проектом
- По желанию: зашифрованные файлы .env-prod в репозитории проекта, расшифровываются во время деплоя
Предварительные условия
- Вам нужен проект на любом git-сервере.
- Проект должен содержать Makefile с заданием "deployment_pre".
- В вашем проекте должен быть файл
.env
или.env-template
, который будет скопирован в.env
.
Окружение
# пользователь, который разворачивает приложение
deploy_user: tech.admin
deploy_group: technical
compose_env_name: "ваше-имя-docker-compose-окружения"
systemd_service_sleep: 30
project_dir: /project
# измените на что-то вроде "./make.sh", если у вас есть точка входа, выполняемая от имени группы пользователей
# не используйте sudo здесь (избегайте использования sudo внутри sudo)
make_executable: "./make.sh"
# этот адрес будет установлен только во время деплоя
git_deploy_url: https://user:password@somehost/someuser/somerepo
# без пользователя и пароля, этот адрес останется на сервере
git_regular_deploy_url: https://somehost/someuser/somerepo
# предотвращает перезапуск всего окружения при многократном деплойменте проекта
avoid_whole_environment_restart: yes
#
# Восстановление из резервной копии. При первом деплое вы можете восстановить всё окружение из резервной копии
# или в случае сбоя. Обычно этот флаг следует устанавливать вручную для каждого деплоя.
#
# Только если вы настроили экземпляр File Repository на внешнем сервере для хранения резервных копий.
#
restore_from_backup_with_recovery_plan: no
# предпочитайте .env-prod (если он присутствует в клонированном git-репозитории) вместо .env-dist
prefer_env_prod_over_dist: yes
# поддержка .env (также работает с .env-prod)
test_specific_env:
- { line: "DOMAIN_SUFFIX=.localhost", regexp: '^DOMAIN_SUFFIX', title: 'env: Добавить суффикс домена - .localhost' }
production_specific_env:
- { line: "DOMAIN_SUFFIX=", regexp: '^DOMAIN_SUFFIX', title: 'env: Удалить суффикс домена' }
Устранение неполадок
- Провизия от имени пользователя X, но запуск Harbor от Riotkit как пользователь Y
Это может быть очень запутанно для Makefile, кто именно должен выполнять непривилегированные команды. Решение - пропустить автоматическое определение пользователя, жестко закодировав идентификатор пользователя и группы в .env файл.
test_specific_env:
- { line: "DOMAIN_SUFFIX=.localhost", regexp: '^DOMAIN_SUFFIX', title: 'env: Добавить суффикс домена - .localhost' }
- { line: "APP_USER=tech.admin", regexp: '^APP_USER', title: 'env: APP_USER' }
- { line: "APP_GROUP_ID=1800", regexp: '^APP_GROUP_ID', title: 'env: APP_GROUP_ID' }
production_specific_env:
- { line: "DOMAIN_SUFFIX=", regexp: '^DOMAIN_SUFFIX', title: 'env: Удалить суффикс домена' }
- { line: "APP_USER=tech.admin", regexp: '^APP_USER', title: 'env: APP_USER' }
- { line: "APP_GROUP_ID=1800", regexp: '^APP_GROUP_ID', title: 'env: APP_GROUP_ID' }
Установить
ansible-galaxy install blackandred.server_docker_project
Лицензия
other
Загрузки
137
Владелец
ZSP is a grassroot organization acting for workers self-organization. Is a part of the International Workers Association (iwa-ait.org)