Files
DevOpsLab/docs/testing-vs-deployment.md

3.2 KiB
Raw Blame History

Тестирование 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. Контейнеры удаляются после тестов

Пример:

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. Выполняется развертывание на реальные серверы

Пример:

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'

Рекомендации

  1. Сначала тестируйте с помощью make role test [preset]
  2. Затем развертывайте с помощью make role deploy
  3. Используйте разные preset'ы для разных сценариев тестирования
  4. Настройте inventory для ваших реальных серверов