No description
Find a file
2026-06-16 20:13:13 +03:00
inventory Рефакторинг проекта 2026-06-16 20:13:13 +03:00
playbooks Рефакторинг проекта 2026-06-16 20:13:13 +03:00
roles Рефакторинг проекта 2026-06-16 20:13:13 +03:00
vars Рефакторинг проекта 2026-06-16 20:13:13 +03:00
.gitignore Рефакторинг проекта 2026-06-16 20:13:13 +03:00
ansible.cfg Рефакторинг проекта 2026-06-16 20:13:13 +03:00
Makefile Рефакторинг проекта 2026-06-16 20:13:13 +03:00
README.md Рефакторинг проекта 2026-06-16 20:13:13 +03:00
TECH_DEBT.md Рефакторинг проекта 2026-06-16 20:13:13 +03:00

Ansible Deploy

Ansible-проект для деплоя приложений.

Подготовка

Перед использованием нужно создать локальные конфигурационные файлы на основе примеров:

cp inventory/hosts.example.yml inventory/hosts.yml
cp inventory/group_vars/all.example.yml inventory/group_vars/all.yml

После этого укажите в них реальные параметры сервера, пользователя, SSH-порта и общие переменные окружения проекта.

Конфигурация проектов

Список проектов описан в vars/deploy_projects.yml. Этот файл является единым источником правды для подготовки директорий и деплоя.

Ключ верхнего уровня внутри deploy_projects — имя проекта. Оно используется:

  • как имя каталога в srv_root, например /srv/www/caddy;
  • как значение deploy_project_name в playbooks/deploy-projects.yml;
  • как тег деплоя в Makefile/playbook.

Поддерживаемые поля проекта:

  • repo — обязательный SSH URL git-репозитория.
  • branch — ветка, тег или commit для деплоя. По умолчанию master.
  • keep_releases — сколько последних релизов хранить. По умолчанию 2.
  • docker_compose — запускать ли docker compose up -d --remove-orphans после переключения current. По умолчанию true.
  • directories — каталоги, которые нужно создать внутри /srv/www/<project>. По умолчанию создаётся только releases.
  • persistent_paths — каталоги или пути, которые должны жить вне релиза и подключаться в каждый релиз через symlink.
  • optional_root_files — файлы из /srv/www/<project>, которые подключаются в релиз через symlink, если существуют. Обычно это .env и docker-compose.override.yml.
  • copy_env_example — копировать ли .env.example из репозитория в релизный .env. По умолчанию true.

Проверка

Проверьте, что Ansible может подключиться к серверу:

make ping

Если проверка прошла успешно, проект готов к использованию. Актуальные команды смотрите через:

make help