roles: завендорена общая роль app_image
- подписка в SYNCED_ROLES + копия из канона ansible-roles (inv roles-pull) - роль собирает образ приложения на control-хосте по контракту `task image` и везёт его на сервер через docker save/load, без реестра
This commit is contained in:
@@ -10,7 +10,7 @@ Ansible-проект для автоматизации личного серве
|
||||
- `production.yml` — инвентарь с единственным хостом `server`.
|
||||
- `group_vars/all/` — общие переменные для всех хостов: `main.yml` (открытые) и `secrets.yml` (зашифрованные vault). Подхватываются Ansible автоматически, `vars_files` в плейбуках не нужен. Имя `secrets.yml` обязательно: pre-commit-хук и `.crushignore` ищут слово `secret(s)` в имени файла.
|
||||
- `vars/*.yml` — переменные отдельных приложений (homepage, transcriber), подключаются через `vars_files`.
|
||||
- `roles/` — кастомные роли (`eget`, `owner`, `secrets`), галактические роли в `galaxy.roles/`.
|
||||
- `roles/` — кастомные роли (`eget`, `owner`, `secrets`, `app_image`), галактические роли в `galaxy.roles/`.
|
||||
- `files/<app>/` — docker-compose шаблоны, конфиги, скрипты бэкапов для каждого сервиса.
|
||||
- `templates/` — общие шаблоны (например `env.template`).
|
||||
- `scripts/` — вспомогательные Python-скрипты (SMTP-утилиты для Yandex Cloud Postbox).
|
||||
@@ -92,6 +92,7 @@ uv run ansible-galaxy install --role-file requirements.yml
|
||||
- `roles/owner` — создаёт системного пользователя/группу для приложения, настраивает SSH-ключи, переменные окружения (~/.env, ~/.bashrc).
|
||||
- `roles/eget` — скачивает и устанавливает утилиту eget.
|
||||
- `roles/secrets` — управляет vault-зашифрованными файлами секретов для приложений.
|
||||
- `roles/app_image` — собирает docker-образ приложения на control-хосте (контракт приложения — `task image` с тегом из `$BUILD_ID`) и везёт его на сервер через `docker save`/`load`, без реестра; отдаёт факт `app_image_tag` для compose. Общая роль, синхронизируется с каноном `ansible-roles` (`inv roles-pull`).
|
||||
|
||||
Галактические роли (`galaxy.roles/`): `geerlingguy.security`, `geerlingguy.docker`, `yatesr.timezone`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user