# docker-compose.yml — Ansible Runner для K3S стека # Использование: управляется через Makefile (make install, make health, ...) # Прямой запуск: docker compose run --rm ansible install version: "3.8" services: ansible: build: context: . dockerfile: Dockerfile args: HELM_VERSION: "3.14.4" KUBECTL_VERSION: "v1.29.3" image: k3s-ansible:latest # container_name намеренно не задаём: так можно параллелить # `docker compose run --rm ansible ...` — имена не конфликтуют. # При необходимости задать префикс: COMPOSE_PROJECT_NAME=stack1 docker compose run ... # ── Volumes ────────────────────────────────────────────────────────────── volumes: # Весь проект — монтируется внутрь контейнера - .:/ansible # SSH ключи с хост-машины (read-only) - ${SSH_KEY_PATH:-~/.ssh}:/root/.ssh:ro # Vault-пароль файл (опционально) # - ./.vault_pass:/ansible/.vault_pass:ro # ── Переменные окружения ────────────────────────────────────────────────── environment: TZ: ${TZ:-Europe/Moscow} # Пароль vault — задай в .env файле или передай через командную строку VAULT_PASSWORD: ${VAULT_PASSWORD:-} # Уровень подробности вывода (0 = обычный, 1-4 = debug) ANSIBLE_VERBOSITY: ${ANSIBLE_VERBOSITY:-0} # Теги для запуска (пусто = все) ANSIBLE_TAGS: ${ANSIBLE_TAGS:-} ANSIBLE_SKIP_TAGS: ${ANSIBLE_SKIP_TAGS:-} # Дополнительные переменные EXTRA_VARS: ${EXTRA_VARS:-} # Версия K3S для upgrade VERSION: ${VERSION:-} # Ansible настройки ANSIBLE_FORCE_COLOR: "1" ANSIBLE_HOST_KEY_CHECKING: "False" ANSIBLE_STDOUT_CALLBACK: "yaml" # ── Рабочая директория ──────────────────────────────────────────────────── working_dir: /ansible # ── Сеть: хост (нужен для SSH до серверов в локальной сети) ────────────── network_mode: host # ── Интерактивный режим (нужен для --ask-vault-pass) ───────────────────── stdin_open: true tty: true