Рефакторинг: вынес запуск ролей в отдельный файл deploy.yml
- Создан файл roles/deploy.yml с блоком запуска роли nginx - Обновлен molecule/default/site.yml для импорта deploy.yml - Улучшена модульность структуры проекта - Автор: Сергей Антропов
This commit is contained in:
@@ -1,99 +0,0 @@
|
||||
# Пресеты для 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"]
|
||||
```
|
||||
@@ -1,57 +0,0 @@
|
||||
---
|
||||
# Пресет для кластерного тестирования
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
docker_network: labnet
|
||||
generated_inventory: "{{ molecule_ephemeral_directory }}/inventory/hosts.ini"
|
||||
|
||||
# systemd-ready образы
|
||||
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:
|
||||
# Web серверы
|
||||
- name: web1
|
||||
family: debian
|
||||
groups: [web]
|
||||
- name: web2
|
||||
family: rhel
|
||||
groups: [web]
|
||||
|
||||
# App серверы
|
||||
- name: app1
|
||||
family: debian
|
||||
groups: [app]
|
||||
- name: app2
|
||||
family: rhel
|
||||
groups: [app]
|
||||
|
||||
# Database серверы
|
||||
- name: db1
|
||||
family: debian
|
||||
groups: [database]
|
||||
- name: db2
|
||||
family: rhel
|
||||
groups: [database]
|
||||
|
||||
# Load Balancer
|
||||
- name: lb1
|
||||
family: rhel
|
||||
groups: [loadbalancer]
|
||||
publish: ["80:80", "443:443"]
|
||||
|
||||
# Мониторинг
|
||||
- name: monitor1
|
||||
family: debian
|
||||
groups: [monitoring]
|
||||
publish: ["3000:3000", "9090:9090"]
|
||||
25
molecule/presets/default.yml
Normal file
25
molecule/presets/default.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
# Минимальный пресет для быстрого тестирования
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
docker_network: labnet
|
||||
generated_inventory: "{{ molecule_ephemeral_directory }}/inventory/hosts.ini"
|
||||
|
||||
# systemd-ready образы
|
||||
images:
|
||||
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
|
||||
|
||||
systemd_defaults:
|
||||
privileged: true
|
||||
command: "/sbin/init"
|
||||
volumes:
|
||||
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
||||
tmpfs: ["/run", "/run/lock"]
|
||||
capabilities: ["SYS_ADMIN"]
|
||||
|
||||
hosts:
|
||||
# Минимальный набор - один хост
|
||||
- name: u1
|
||||
family: debian
|
||||
groups: [test]
|
||||
Reference in New Issue
Block a user