Обновление конфигурации 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