Обновление конфигурации Ansible: добавлены новые пресеты, улучшен Makefile, добавлена документация
This commit is contained in:
52
scripts/test-playbook.yml
Normal file
52
scripts/test-playbook.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
# Простой тестовый playbook для проверки 3 контейнеров
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
- name: Test containers connectivity
|
||||
hosts: localhost
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- name: Check container u1 (Debian)
|
||||
command: docker exec u1 echo "Hello from u1"
|
||||
register: u1_result
|
||||
changed_when: false
|
||||
|
||||
- name: Check container u2 (RHEL)
|
||||
command: docker exec u2 echo "Hello from u2"
|
||||
register: u2_result
|
||||
changed_when: false
|
||||
|
||||
- name: Check container u3 (Debian)
|
||||
command: docker exec u3 echo "Hello from u3"
|
||||
register: u3_result
|
||||
changed_when: false
|
||||
|
||||
- name: Display results
|
||||
debug:
|
||||
msg:
|
||||
- "u1 (Debian): {{ u1_result.stdout }}"
|
||||
- "u2 (RHEL): {{ u2_result.stdout }}"
|
||||
- "u3 (Debian): {{ u3_result.stdout }}"
|
||||
|
||||
- name: Install nginx on u1
|
||||
command: docker exec u1 bash -c "apt-get update && apt-get install -y nginx"
|
||||
register: nginx_u1
|
||||
changed_when: false
|
||||
|
||||
- name: Install nginx on u2
|
||||
command: docker exec u2 bash -c "yum install -y nginx"
|
||||
register: nginx_u2
|
||||
changed_when: false
|
||||
|
||||
- name: Install nginx on u3
|
||||
command: docker exec u3 bash -c "apt-get update && apt-get install -y nginx"
|
||||
register: nginx_u3
|
||||
changed_when: false
|
||||
|
||||
- name: Display nginx installation results
|
||||
debug:
|
||||
msg:
|
||||
- "Nginx installation on u1: {{ 'SUCCESS' if nginx_u1.rc == 0 else 'FAILED' }}"
|
||||
- "Nginx installation on u2: {{ 'SUCCESS' if nginx_u2.rc == 0 else 'FAILED' }}"
|
||||
- "Nginx installation on u3: {{ 'SUCCESS' if nginx_u3.rc == 0 else 'FAILED' }}"
|
||||
83
scripts/test-standart.sh
Executable file
83
scripts/test-standart.sh
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/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 "✅ Тестирование завершено!"
|
||||
Reference in New Issue
Block a user