[project] name = "aero" version = "0.1.0" description = "Ansible-провижининг docker-хостов (docker, docker-compose, containerd)" requires-python = ">=3.11" dependencies = [ "ansible-core>=2.17", ] [dependency-groups] dev = [ "ansible-lint>=24.0", "poethepoet>=0.29", ] [tool.uv] package = false # Общее окружение для всех poe-задач. # ANSIBLE_CONFIG задаётся явно: на /mnt/c (диск Windows) права 0777, и ansible # из соображений безопасности игнорирует ansible.cfg в world-writable каталоге. [tool.poe.env] ANSIBLE_CONFIG = "${POE_ROOT}/ansible.cfg" UV_LINK_MODE = "copy" # Таск-раннер poethepoet. Запуск: uv run poe [tool.poe.tasks] sync = "uv sync" galaxy = "ansible-galaxy collection install -r requirements.yml" ping = "ansible docker_hosts -m ping" # Провижининг хоста: базовые пакеты + docker/containerd + запуск службы provision = "ansible-playbook site.yml" check = "ansible-playbook site.yml --check --diff" # Деплой конфигурации: файлы, .env с паролями, сертификаты, docker login deploy = "ansible-playbook deploy.yml" deploy-check = "ansible-playbook deploy.yml --check --diff" # Деплой + поднять стек приложения (docker compose up -d) stack = "ansible-playbook deploy.yml -e sarex_compose_up=true" # Только генерация паролей и рендер .env на хосте (без копирования/сертификатов) gen-env = "ansible-playbook deploy.yml --tags env" # docker login в приватный реестр по ключу json_key login = "ansible-playbook deploy.yml --tags login" # Сгенерировать логин+пароль и создать Django-суперпользователя в backend superuser = "ansible-playbook deploy.yml -e sarex_create_superuser=true --tags superuser" lint = "ansible-lint" # Подготовка окружения: uv sync + установка коллекций [tool.poe.tasks.setup] sequence = ["sync", "galaxy"] # Установка с чистого листа: окружение → docker → деплой+стек → суперпользователь [tool.poe.tasks.install] sequence = ["sync", "galaxy", "provision", "stack", "superuser"]