100 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Тестирование 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** для ваших реальных серверов
 |