84 lines
2.8 KiB
Bash
Executable File
84 lines
2.8 KiB
Bash
Executable File
#!/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 "✅ Тестирование завершено!"
|