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 для ваших реальных серверов