3.2 KiB
3.2 KiB
Тестирование vs Развертывание
Автор: Сергей Антропов
Сайт: https://devops.org.ru
Различие между тестированием и развертыванием
🧪 Тестирование (molecule)
Команда: make role test [preset]
Использует:
- Динамический inventory, создаваемый в
molecule/default/create.yml - Preset файлы из
molecule/presets/ - Docker контейнеры для изоляции тестов
- Временные контейнеры (u1, u2, u3)
Процесс:
- Загружается preset конфигурация
- Создаются Docker контейнеры согласно preset
- Генерируется временный inventory файл
- Запускаются тесты на контейнерах
- Контейнеры удаляются после тестов
Пример:
make role test standart # Тестирование в 3 контейнерах
make role test minimal # Тестирование в 1 контейнере
🚀 Развертывание (deploy)
Команда: make role deploy
Использует:
- Статический inventory файл
inventory/hosts.ini - Реальные серверы
- SSH подключение
Процесс:
- Проверяется наличие
inventory/hosts.ini - Показывается содержимое inventory
- Запускается dry-run (--check)
- Запрашивается подтверждение
- Выполняется развертывание на реальные серверы
Пример:
make role deploy # Развертывание на реальные серверы
Конфигурация
Для тестирования
- Preset файлы:
molecule/presets/*.yml - Динамический inventory создается в
create.yml - Контейнеры: Docker
Для развертывания
- Inventory файл:
inventory/hosts.ini - Серверы: Реальные хосты
- Подключение: SSH
Примеры конфигурации
Preset для тестирования (molecule/presets/standart.yml)
hosts:
- name: u1
family: debian
groups: [test]
- name: u2
family: rhel
groups: [test]
- name: u3
family: debian
groups: [test]
Inventory для развертывания (inventory/hosts.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'
Рекомендации
- Сначала тестируйте с помощью
make role test [preset] - Затем развертывайте с помощью
make role deploy - Используйте разные preset'ы для разных сценариев тестирования
- Настройте inventory для ваших реальных серверов