48 lines
1.7 KiB
TOML
48 lines
1.7 KiB
TOML
[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 <task>
|
|
[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"
|
|
lint = "ansible-lint"
|
|
|
|
# Полная подготовка окружения: uv sync + установка коллекций
|
|
[tool.poe.tasks.setup]
|
|
sequence = ["sync", "galaxy"]
|
|
|
|
# Всё сразу: подготовка окружения и прогон плейбука
|
|
[tool.poe.tasks.up]
|
|
sequence = ["sync", "galaxy", "play"]
|