[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" play = "ansible-playbook site.yml" check = "ansible-playbook site.yml --check --diff" deploy = "ansible-playbook deploy.yml" deploy-check = "ansible-playbook deploy.yml --check --diff" # Только генерация паролей и рендер .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 --tags superuser" lint = "ansible-lint" # Полная подготовка окружения: uv sync + установка коллекций [tool.poe.tasks.setup] sequence = ["sync", "galaxy"] # Всё сразу: подготовка окружения и прогон плейбука [tool.poe.tasks.up] sequence = ["sync", "galaxy", "play"]