feat: Полная переработка документации и структуры проекта

- Переписан главный README.md с подробной навигацией
- Создана структурированная документация в docs/:
  - getting-started.md - быстрый старт
  - creating-roles.md - создание ролей
  - cicd-setup.md - настройка CI/CD
  - monitoring.md - мониторинг и диагностика
  - site-yml-guide.md - руководство по site.yml
  - molecule-guide.md - подробное руководство по Molecule
- Переписан dockerfiles/README.md с детальным описанием всех образов
- Перенесен deploy.yml из корня в roles/ для лучшей организации
- Обновлен site.yml для импорта roles/deploy.yml
- Добавлены fallback значения в create.yml для надежности
- Созданы скрипты автоматизации:
  - update-playbooks.sh - обновление playbook'ов
  - generate-role-docs.sh - генерация документации
  - setup-cicd.sh - настройка CI/CD
- Добавлен env.example с примерами переменных
- Обновлен Makefile с новыми командами автоматизации
- Улучшена навигация по документации
This commit is contained in:
Сергей Антропов
2025-10-25 18:11:36 +03:00
parent 1a4e52aab2
commit 94560ffaaa
19 changed files with 6986 additions and 270 deletions

256
env.example Normal file
View File

@@ -0,0 +1,256 @@
# AnsibleTemplate - Переменные окружения
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
# =============================================================================
# ОСНОВНЫЕ НАСТРОЙКИ
# =============================================================================
# Название проекта
PROJECT_NAME=ansible-template
# Версия проекта
VERSION=2.0.0
# Автор проекта
AUTHOR="Сергей Антропов"
# Сайт автора
SITE="https://devops.org.ru"
# =============================================================================
# DOCKER НАСТРОЙКИ
# =============================================================================
# Docker образ для ansible-controller
DOCKER_IMAGE=inecs/ansible-lab:ansible-controller-latest
# Docker образ для DinD (Docker-in-Docker)
DOCKER_DIND_IMAGE=docker:27-dind
# Имя контейнера ansible-controller
CONTAINER_NAME=ansible-controller
# =============================================================================
# DOCKER HUB НАСТРОЙКИ
# =============================================================================
# Docker registry для образов
DOCKER_REGISTRY=inecs/ansible-lab
# Версия образов
DOCKER_VERSION=latest
# Список образов для сборки
DOCKER_IMAGES=ansible-controller alt-linux astra-linux redos rhel centos alma rocky ubuntu debian
# =============================================================================
# MULTI-ARCH НАСТРОЙКИ
# =============================================================================
# Поддерживаемые архитектуры
DOCKER_PLATFORMS=linux/amd64,linux/arm64
# Имя buildx builder'а
DOCKER_BUILDX_BUILDER=multiarch-builder
# =============================================================================
# ANSIBLE НАСТРОЙКИ
# =============================================================================
# Принудительное использование цветов
ANSIBLE_FORCE_COLOR=1
# Callback для вывода
ANSIBLE_STDOUT_CALLBACK=yaml
# Включенные callback'и
ANSIBLE_CALLBACKS_ENABLED=profile_tasks
# =============================================================================
# MOLECULE НАСТРОЙКИ
# =============================================================================
# Директория для временных файлов Molecule
MOLECULE_EPHEMERAL_DIRECTORY=/tmp/molecule_workspace
# Preset по умолчанию
MOLECULE_PRESET=default
# =============================================================================
# VAULT НАСТРОЙКИ
# =============================================================================
# Файл пароля для vault
VAULT_PASSWORD_FILE=vault/.vault
# ID для шифрования vault
VAULT_ID=default
# =============================================================================
# SSH НАСТРОЙКИ
# =============================================================================
# Пользователь для SSH подключения
ANSIBLE_USER=devops
# SSH ключ для подключения
ANSIBLE_SSH_PRIVATE_KEY_FILE=~/.ssh/id_rsa
# Дополнительные аргументы SSH
ANSIBLE_SSH_COMMON_ARGS='-o StrictHostKeyChecking=no'
# Проверка SSH ключей
ANSIBLE_HOST_KEY_CHECKING=False
# =============================================================================
# ИНВЕНТОРИ НАСТРОЙКИ
# =============================================================================
# Файл инвентори по умолчанию
ANSIBLE_INVENTORY=inventory/hosts.ini
# Путь к ролям
ANSIBLE_ROLES_PATH=roles/
# Интерпретатор Python
ANSIBLE_INTERPRETER_PYTHON=auto
# =============================================================================
# ЛОГИРОВАНИЕ
# =============================================================================
# Уровень логирования
LOG_LEVEL=INFO
# Файл логов
LOG_FILE=ansible.log
# Максимальный размер лог файла
LOG_MAX_SIZE=100M
# Количество лог файлов
LOG_MAX_FILES=5
# =============================================================================
# УВЕДОМЛЕНИЯ
# =============================================================================
# Slack webhook URL для уведомлений
SLACK_WEBHOOK_URL=
# Teams webhook URL для уведомлений
TEAMS_WEBHOOK_URL=
# Email для уведомлений
NOTIFICATION_EMAIL=
# =============================================================================
# МОНИТОРИНГ
# =============================================================================
# Интервал мониторинга (в секундах)
MONITORING_INTERVAL=300
# Включить мониторинг
MONITORING_ENABLED=true
# Директория для метрик
METRICS_DIRECTORY=metrics
# Директория для отчетов
REPORTS_DIRECTORY=reports
# =============================================================================
# CI/CD НАСТРОЙКИ
# =============================================================================
# Ветка по умолчанию
DEFAULT_BRANCH=main
# Включить автоматическое тестирование
AUTO_TEST_ENABLED=true
# Включить автоматическое развертывание
AUTO_DEPLOY_ENABLED=false
# =============================================================================
# БЕЗОПАСНОСТЬ
# =============================================================================
# Включить сканирование секретов
SECRET_SCANNING_ENABLED=true
# Включить проверку уязвимостей
VULNERABILITY_SCANNING_ENABLED=true
# Включить подписывание образов
IMAGE_SIGNING_ENABLED=false
# =============================================================================
# ПРОИЗВОДИТЕЛЬНОСТЬ
# =============================================================================
# Количество параллельных задач
ANSIBLE_FORKS=5
# Таймаут для задач (в секундах)
ANSIBLE_TIMEOUT=30
# Включить кеширование
ANSIBLE_CACHE_ENABLED=true
# =============================================================================
# РАЗРАБОТКА
# =============================================================================
# Включить автоматическое создание документации
AUTO_DOCS_ENABLED=true
# Включить автоматическое обновление playbook'ов
AUTO_UPDATE_PLAYBOOKS_ENABLED=true
# Включить автоматическое создание скриптов
AUTO_CREATE_SCRIPTS_ENABLED=true
# =============================================================================
# ОТЛАДКА
# =============================================================================
# Включить отладочный режим
DEBUG_MODE=false
# Включить подробные логи
VERBOSE_LOGS=false
# Включить профилирование
PROFILING_ENABLED=false
# =============================================================================
# ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
# =============================================================================
# 1. Копирование файла переменных
# cp env.example .env
# 2. Редактирование переменных
# nano .env
# 3. Загрузка переменных
# source .env
# 4. Использование в Makefile
# make docker build DOCKER_REGISTRY=my-registry.com
# 5. Использование в Ansible
# ansible-playbook site.yml -e "ansible_user=${ANSIBLE_USER}"
# =============================================================================
# ПРИМЕЧАНИЯ
# =============================================================================
# - Все переменные имеют значения по умолчанию
# - Переменные можно переопределить через .env файл
# - Переменные можно передавать через командную строку
# - Переменные можно задавать через переменные окружения
# - Приоритет: командная строка > .env файл > значения по умолчанию