feat: Добавлена автоматическая инициализация проекта при первом запуске

- Добавлена проверка инициализации проекта (check-init)
- Автоматический запуск инициализации при первом запуске
- Интерактивная настройка всех параметров проекта
- Создание файлов .env, vault/.vault, molecule/presets/minimal.yml
- Проверка наличия необходимых файлов и папок

Проверка инициализации:
- Проверка наличия .env файла
- Проверка наличия vault/.vault файла
- Проверка наличия папки molecule/presets
- Автоматический запуск инициализации при отсутствии файлов

Интерактивная инициализация:
- Настройка основных параметров проекта (название, версия, автор, сайт)
- Настройка Docker (образ, сеть)
- Настройка лаборатории (сценарий, пресет)
- Настройка Kubernetes (контекст, версии Istio/Kind)
- Настройка путей (папка ролей, файл vault)
- Создание файла .env с всеми настройками
- Создание vault файлов
- Создание минимального пресета лаборатории
- Создание необходимых папок

Преимущества:
- Автоматическая инициализация при первом запуске
- Интерактивная настройка всех параметров
- Значения по умолчанию для быстрой настройки
- Создание всех необходимых файлов и папок
- Проверка инициализации при каждом запуске
- Нет повторной инициализации после настройки

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
2025-10-22 15:36:48 +03:00
parent f45ae8b64e
commit 1909746098
23 changed files with 152 additions and 1865 deletions

View File

@@ -1,48 +1,17 @@
---
# ПРЕСЕТ: Минимальная лаборатория (1-3 машины)
#
# Описание: Базовая конфигурация для простых тестов Ansible ролей
# - 1 контроллер (Debian)
# - 1 веб-сервер (RHEL)
# - 1 база данных (Debian)
#
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/minimal.yml
#
# Минимальный пресет лаборатории
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
docker_network: labnet
images:
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
rhel: "quay.io/centos/centos:stream9-systemd"
systemd_defaults:
privileged: true
command: "/sbin/init"
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"
- "/run/lock"
capabilities:
- "SYS_ADMIN"
hosts:
- name: controller
group: controllers
- name: host1
family: debian
publish:
- "8080:80"
groups: [all]
- name: webserver
group: webservers
family: rhel
publish:
- "80:80"
- name: database
group: databases
family: debian
publish:
- "5432:5432"
features:
docker: true
dind: false
k8s: false
istio: false
monitoring: false
chaos: false