# Пресеты для Molecule ## Описание Пресеты - это готовые конфигурации для быстрого развертывания тестовых окружений. Каждый пресет содержит определенный набор хостов и настроек. ## Доступные пресеты ### `minimal.yml` - **Описание**: Минимальный набор для быстрого тестирования - **Хосты**: 1 хост (Debian) - **Использование**: Для простых тестов и отладки ### `standard.yml` - **Описание**: Стандартный набор для тестирования - **Хосты**: 3 хоста (Debian + RHEL) - **Использование**: Для большинства тестов ### `docker.yml` - **Описание**: Пресет с Docker контейнерами - **Хосты**: 2 systemd + 1 DinD + 1 DOoD - **Использование**: Для тестирования Docker-приложений ### `cluster.yml` - **Описание**: Пресет для кластерного тестирования - **Хосты**: 8 хостов (web, app, database, loadbalancer, monitoring) - **Использование**: Для тестирования сложных архитектур ## Использование ### Через Makefile ```bash # Показать все пресеты make preset list # Переключиться на пресет make preset use minimal make preset use standard make preset use docker make preset use cluster ``` ### Через скрипт ```bash # Показать все пресеты ./scripts/use-preset.sh # Переключиться на пресет ./scripts/use-preset.sh minimal ``` ### Ручное переключение ```bash # Скопировать пресет в hosts.yml cp molecule/presets/minimal.yml molecule/universal/hosts.yml ``` ## Создание собственного пресета 1. Скопируйте существующий пресет: ```bash cp molecule/presets/standard.yml molecule/presets/my-preset.yml ``` 2. Отредактируйте файл под свои нужды 3. Используйте новый пресет: ```bash make preset use my-preset ``` ## Структура пресета ```yaml --- docker_network: labnet generated_inventory: "{{ molecule_ephemeral_directory }}/inventory/hosts.ini" 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: host1 family: debian groups: [test] - name: docker1 type: dind groups: [docker] publish: ["8080:8080"] ```