Обновление конфигурации Ansible: добавлены новые пресеты, улучшен Makefile, добавлена документация
This commit is contained in:
99
docs/testing-vs-deployment.md
Normal file
99
docs/testing-vs-deployment.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# Тестирование vs Развертывание
|
||||
|
||||
## Автор: Сергей Антропов
|
||||
## Сайт: https://devops.org.ru
|
||||
|
||||
## Различие между тестированием и развертыванием
|
||||
|
||||
### 🧪 Тестирование (molecule)
|
||||
|
||||
**Команда:** `make role test [preset]`
|
||||
|
||||
**Использует:**
|
||||
- Динамический inventory, создаваемый в `molecule/default/create.yml`
|
||||
- Preset файлы из `molecule/presets/`
|
||||
- Docker контейнеры для изоляции тестов
|
||||
- Временные контейнеры (u1, u2, u3)
|
||||
|
||||
**Процесс:**
|
||||
1. Загружается preset конфигурация
|
||||
2. Создаются Docker контейнеры согласно preset
|
||||
3. Генерируется временный inventory файл
|
||||
4. Запускаются тесты на контейнерах
|
||||
5. Контейнеры удаляются после тестов
|
||||
|
||||
**Пример:**
|
||||
```bash
|
||||
make role test standart # Тестирование в 3 контейнерах
|
||||
make role test minimal # Тестирование в 1 контейнере
|
||||
```
|
||||
|
||||
### 🚀 Развертывание (deploy)
|
||||
|
||||
**Команда:** `make role deploy`
|
||||
|
||||
**Использует:**
|
||||
- Статический inventory файл `inventory/hosts.ini`
|
||||
- Реальные серверы
|
||||
- SSH подключение
|
||||
|
||||
**Процесс:**
|
||||
1. Проверяется наличие `inventory/hosts.ini`
|
||||
2. Показывается содержимое inventory
|
||||
3. Запускается dry-run (--check)
|
||||
4. Запрашивается подтверждение
|
||||
5. Выполняется развертывание на реальные серверы
|
||||
|
||||
**Пример:**
|
||||
```bash
|
||||
make role deploy # Развертывание на реальные серверы
|
||||
```
|
||||
|
||||
## Конфигурация
|
||||
|
||||
### Для тестирования
|
||||
- Preset файлы: `molecule/presets/*.yml`
|
||||
- Динамический inventory создается в `create.yml`
|
||||
- Контейнеры: Docker
|
||||
|
||||
### Для развертывания
|
||||
- Inventory файл: `inventory/hosts.ini`
|
||||
- Серверы: Реальные хосты
|
||||
- Подключение: SSH
|
||||
|
||||
## Примеры конфигурации
|
||||
|
||||
### Preset для тестирования (molecule/presets/standart.yml)
|
||||
```yaml
|
||||
hosts:
|
||||
- name: u1
|
||||
family: debian
|
||||
groups: [test]
|
||||
- name: u2
|
||||
family: rhel
|
||||
groups: [test]
|
||||
- name: u3
|
||||
family: debian
|
||||
groups: [test]
|
||||
```
|
||||
|
||||
### Inventory для развертывания (inventory/hosts.ini)
|
||||
```ini
|
||||
[web_servers]
|
||||
web1 ansible_host=192.168.1.10 ansible_user=ubuntu
|
||||
web2 ansible_host=192.168.1.11 ansible_user=ubuntu
|
||||
|
||||
[db_servers]
|
||||
db1 ansible_host=192.168.1.20 ansible_user=ubuntu
|
||||
|
||||
[all:vars]
|
||||
ansible_ssh_private_key_file=~/.ssh/id_rsa
|
||||
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
|
||||
```
|
||||
|
||||
## Рекомендации
|
||||
|
||||
1. **Сначала тестируйте** с помощью `make role test [preset]`
|
||||
2. **Затем развертывайте** с помощью `make role deploy`
|
||||
3. **Используйте разные preset'ы** для разных сценариев тестирования
|
||||
4. **Настройте inventory** для ваших реальных серверов
|
||||
Reference in New Issue
Block a user