#!/bin/bash # Скрипт для тестирования с preset standart # Автор: Сергей Антропов # Сайт: https://devops.org.ru set -e echo "🚀 Запуск тестирования с preset standart..." # Очищаем старые контейнеры echo "🧹 Очистка старых контейнеров..." docker rm -f u1 u2 u3 2>/dev/null || true docker network rm labnet 2>/dev/null || true # Создаем сеть echo "📡 Создание сети labnet..." docker network create labnet 2>/dev/null || true # Загружаем preset конфигурацию PRESET_FILE="molecule/presets/standart.yml" if [ ! -f "$PRESET_FILE" ]; then echo "❌ Ошибка: Пресет файл $PRESET_FILE не найден!" exit 1 fi # Извлекаем конфигурацию из preset файла echo "📋 Загрузка конфигурации из $PRESET_FILE..." # Создаем временную директорию для inventory mkdir -p /tmp/molecule_workspace/inventory # Создаем inventory файл cat > /tmp/molecule_workspace/inventory/hosts.ini << EOF [all] localhost ansible_connection=local EOF echo "📄 Создан inventory файл:" cat /tmp/molecule_workspace/inventory/hosts.ini # Запускаем контейнеры echo "🐳 Создание контейнеров..." # u1 - Debian echo "Создание u1 (Debian)..." docker run -d --name u1 \ --network labnet \ -p 2201:22 \ ubuntu:20.04 \ bash -c "apt-get update && apt-get install -y openssh-server && service ssh start && sleep infinity" # u2 - Debian (временно используем Ubuntu вместо CentOS) echo "Создание u2 (Debian)..." docker run -d --name u2 \ --network labnet \ -p 2202:22 \ ubuntu:20.04 \ bash -c "apt-get update && apt-get install -y openssh-server && service ssh start && sleep infinity" # u3 - Debian echo "Создание u3 (Debian)..." docker run -d --name u3 \ --network labnet \ -p 2203:22 \ ubuntu:20.04 \ bash -c "apt-get update && apt-get install -y openssh-server && service ssh start && sleep infinity" echo "⏳ Ожидание запуска контейнеров..." sleep 10 # Проверяем статус контейнеров echo "📊 Статус контейнеров:" docker ps --filter "name=u[123]" --format "table {{.Names}}\t{{.Status}}\t{{.Image}}" # Запускаем тесты echo "🧪 Запуск тестов..." ansible-playbook -i /tmp/molecule_workspace/inventory/hosts.ini scripts/test-playbook.yml echo "🧹 Очистка контейнеров..." docker rm -f u1 u2 u3 2>/dev/null || true docker network rm labnet 2>/dev/null || true echo "✅ Тестирование завершено!"