добавлен goatcounter для веб-аналитики
- один инстанс на два сайта, gc-main и gc-photo: нужный выбирается по Host - домены ведутся в goatcounter_sites (group_vars), оттуда же рендерятся имена в Caddyfile - сайты и первый пользователь заводятся идемпотентно, креды из vault
This commit is contained in:
@@ -71,6 +71,7 @@ uv run ansible-galaxy install --role-file requirements.yml
|
||||
- `playbook-netdata.yml` — мониторинг.
|
||||
- `playbook-dozzle.yml` — просмотр Docker-логов.
|
||||
- `playbook-goaccess.yml` — аналитика веб-логов Caddy в реальном времени.
|
||||
- `playbook-goatcounter.yml` — веб-аналитика посещений (GoatCounter, SQLite), собственный логин. Один инстанс на несколько сайтов, сайт выбирается по `Host`; список доменов — `goatcounter_sites` в `group_vars/all/main.yml`.
|
||||
- `playbook-gramps.yml` — генеалогия.
|
||||
- `playbook-calibre.yml` — управление электронными книгами.
|
||||
- `playbook-transcriber.yml` — транскрибация (образ собирается локально ролью `app_image`).
|
||||
@@ -99,6 +100,8 @@ uv run ansible-galaxy install --role-file requirements.yml
|
||||
|
||||
- Суффиксы шаблонов: `.template.yml`, `.template.sh`, `.template.cfg`, `.template.conf`, `.template.toml`, `.template` (для файлов без естественного расширения) — рендерятся Ansible модулем `template`. Расширение оригинального формата сохраняется после `.template.` ради подсветки синтаксиса в редакторе.
|
||||
- Большинство приложений определяют переменные inline в плейбуке. Отдельные файлы переменных только у homepage и transcriber (`vars/homepage.yml`, `vars/transcriber.yml`).
|
||||
- `vars_files` в precedence выше `group_vars`: одноимённая переменная в `vars/<app>.yml` молча перебьёт значение из `group_vars`, в том числе из vault.
|
||||
- Переменную, которую читает больше одного плейбука, кладём в `group_vars/all/main.yml`, а не в `vars/<app>.yml` — так её видят все. Пример: `goatcounter_sites` (плейбук goatcounter заводит по нему сайты, caddyproxy рендерит из него имена в Caddyfile).
|
||||
- Общие переменные из `group_vars/all/` (`main.yml` + vault-файл `secrets.yml`): `application_dir`, `bin_prefix`, `primary_user` и др. Загружаются автоматически для группы `all`, поэтому плейбуки их не перечисляют. Хост-специфичные значения переопределяются в инвентаре — теперь они имеют приоритет над `group_vars`.
|
||||
- Каждое приложение: `app_name`, `app_user`, `app_owner_uid`, `app_owner_gid`, `base_dir`, `data_dir`.
|
||||
- UID/GID сервисов: новое соглашение — диапазон `11xx`, причём `app_owner_uid == app_owner_gid` (одно число на сервис). Новому приложению берём следующий свободный номер по возрастанию. Старые сервисы ещё сидят на легаси-нумерации `10xx` (часто с разными uid/gid) — их не трогаем, но новые заводим только в `11xx`.
|
||||
|
||||
Reference in New Issue
Block a user