- Заменено название проекта во всех файлах проекта - Обновлены: * README.md * Makefile * Все файлы документации (.md) * CI/CD конфигурации (Jenkins, GitLab, GitHub Actions, Azure DevOps) * Скрипты (setup-cicd.sh, test-custom-images.sh) * Файлы конфигурации Molecule - Изменена переменная PROJECT_NAME в Makefile на devops-lab - Docker образы inecs/ansible-lab:* оставлены без изменений (чтобы не затрагивать существующие образы в Docker Hub)
		
			
				
	
	
		
			326 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			326 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Примеры использования DevOpsLab
 | ||
| 
 | ||
| **Автор:** Сергей Антропов  
 | ||
| **Сайт:** https://devops.org.ru  
 | ||
| **Версия:** 3.0.0
 | ||
| 
 | ||
| ## Быстрый старт
 | ||
| 
 | ||
| ### Базовое тестирование роли
 | ||
| 
 | ||
| ```bash
 | ||
| # Тестирование роли ping с minimal preset (1 хост)
 | ||
| make role test minimal
 | ||
| 
 | ||
| # Тестирование роли docker с default preset (2 хоста)
 | ||
| make role lint docker
 | ||
| make role test docker
 | ||
| ```
 | ||
| 
 | ||
| ### Просмотр доступных preset'ов
 | ||
| 
 | ||
| ```bash
 | ||
| # Список всех preset'ов
 | ||
| make presets list
 | ||
| 
 | ||
| # Информация о конкретном preset'е
 | ||
| make presets info PRESET=default
 | ||
| make presets info PRESET=all-images
 | ||
| ```
 | ||
| 
 | ||
| ## Пример 1: Тестирование роли Docker
 | ||
| 
 | ||
| ### Описание
 | ||
| Тестирование универсальной роли Docker на разных ОС.
 | ||
| 
 | ||
| ```bash
 | ||
| # Lint проверка
 | ||
| make role lint docker
 | ||
| 
 | ||
| # Тестирование с minimal preset (1 хост Debian)
 | ||
| make role test minimal
 | ||
| 
 | ||
| # Тестирование с default preset (Ubuntu + Debian)
 | ||
| make role test default
 | ||
| 
 | ||
| # Тестирование с preset all-images (16 хостов, все ОС)
 | ||
| make role test all-images
 | ||
| ```
 | ||
| 
 | ||
| ### Проверка результатов
 | ||
| 
 | ||
| ```bash
 | ||
| # Просмотр созданных контейнеров
 | ||
| docker ps -a --filter "network=labnet"
 | ||
| 
 | ||
| # Просмотр логов контейнера
 | ||
| docker logs $(docker ps -aq --filter "network=labnet" | head -1)
 | ||
| 
 | ||
| # Вход в контейнер для проверки
 | ||
| docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) bash
 | ||
| ```
 | ||
| 
 | ||
| ## Пример 2: Создание собственной роли
 | ||
| 
 | ||
| ### Создание роли
 | ||
| 
 | ||
| ```bash
 | ||
| # Интерактивное создание новой роли
 | ||
| make role create
 | ||
| # Введите имя роли: nginx
 | ||
| 
 | ||
| # Редактирование роли
 | ||
| cd roles/nginx
 | ||
| nano tasks/main.yml
 | ||
| ```
 | ||
| 
 | ||
| ### Разработка роли
 | ||
| 
 | ||
| **`roles/nginx/tasks/main.yml`:**
 | ||
| ```yaml
 | ||
| ---
 | ||
| - name: Установка nginx
 | ||
|   package:
 | ||
|     name: nginx
 | ||
|     state: present
 | ||
|   when: ansible_os_family in ['Debian', 'RedHat']
 | ||
| 
 | ||
| - name: Запуск nginx
 | ||
|   systemd:
 | ||
|     name: nginx
 | ||
|     state: started
 | ||
|     enabled: yes
 | ||
| ```
 | ||
| 
 | ||
| ### Тестирование роли
 | ||
| 
 | ||
| ```bash
 | ||
| # Lint проверка
 | ||
| make role lint nginx
 | ||
| 
 | ||
| # Тестирование с minimal preset
 | ||
| make role test minimal
 | ||
| 
 | ||
| # Проверка работы nginx
 | ||
| docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) systemctl status nginx
 | ||
| ```
 | ||
| 
 | ||
| ## Пример 3: Использование preset'ов
 | ||
| 
 | ||
| ### Minimal preset (1 хост)
 | ||
| 
 | ||
| ```bash
 | ||
| # Быстрое тестирование на 1 хосте
 | ||
| make role test minimal
 | ||
| 
 | ||
| # Проверка контейнера
 | ||
| docker ps -a --filter "network=labnet"
 | ||
| ```
 | ||
| 
 | ||
| ### Default preset (2 хоста)
 | ||
| 
 | ||
| ```bash
 | ||
| # Тестирование на Ubuntu + Debian
 | ||
| make role test default
 | ||
| 
 | ||
| # Проверка нескольких контейнеров
 | ||
| docker ps -a --filter "network=labnet"
 | ||
| ```
 | ||
| 
 | ||
| ### All-images preset (16 хостов)
 | ||
| 
 | ||
| ```bash
 | ||
| # Полное тестирование всех ОС
 | ||
| make role test all-images
 | ||
| 
 | ||
| # Проверка всех контейнеров
 | ||
| docker ps -a --filter "network=labnet" --format "table {{.Names}}\t{{.Status}}"
 | ||
| ```
 | ||
| 
 | ||
| ### Preset'ы по ОС
 | ||
| 
 | ||
| ```bash
 | ||
| # Тестирование на всех версиях Ubuntu
 | ||
| make role test ubuntu-all
 | ||
| 
 | ||
| # Тестирование на всех версиях Debian
 | ||
| make role test debian-all
 | ||
| 
 | ||
| # Тестирование на всех версиях CentOS
 | ||
| make role test centos-all
 | ||
| ```
 | ||
| 
 | ||
| ## Пример 4: Работа с Ansible Vault
 | ||
| 
 | ||
| ### Создание секретов
 | ||
| 
 | ||
| ```bash
 | ||
| # Инициализация vault
 | ||
| make vault init
 | ||
| 
 | ||
| # Создание нового файла секретов
 | ||
| make vault create
 | ||
| # Имя файла: secrets
 | ||
| ```
 | ||
| 
 | ||
| ### Редактирование секретов
 | ||
| 
 | ||
| ```bash
 | ||
| # Редактирование
 | ||
| make vault edit
 | ||
| # Имя файла: secrets
 | ||
| 
 | ||
| # Просмотр секретов
 | ||
| make vault show
 | ||
| # Имя файла: secrets
 | ||
| ```
 | ||
| 
 | ||
| ### Использование в тестировании
 | ||
| 
 | ||
| Секреты автоматически расшифровываются при запуске тестов и шифруются обратно после завершения.
 | ||
| 
 | ||
| ## Пример 5: CI/CD интеграция
 | ||
| 
 | ||
| ### GitHub Actions
 | ||
| 
 | ||
| ```yaml
 | ||
| name: Ansible Tests
 | ||
| on: [push, pull_request]
 | ||
| 
 | ||
| jobs:
 | ||
|   test:
 | ||
|     runs-on: ubuntu-latest
 | ||
|     steps:
 | ||
|       - uses: actions/checkout@v4
 | ||
|       - name: Run tests
 | ||
|         run: |
 | ||
|           make role lint
 | ||
|           make role test minimal
 | ||
| ```
 | ||
| 
 | ||
| ### GitLab CI
 | ||
| 
 | ||
| ```yaml
 | ||
| test:
 | ||
|   script:
 | ||
|     - make role lint
 | ||
|     - make role test minimal
 | ||
|   only:
 | ||
|     - merge_requests
 | ||
|     - main
 | ||
| ```
 | ||
| 
 | ||
| ## Пример 6: Диагностика и отладка
 | ||
| 
 | ||
| ### Проверка линтинга
 | ||
| 
 | ||
| ```bash
 | ||
| # Линт всех ролей
 | ||
| make role lint
 | ||
| 
 | ||
| # Линт конкретной роли
 | ||
| make role lint docker
 | ||
| 
 | ||
| # Линт с подробным выводом
 | ||
| ansible-lint roles/docker/ -vv
 | ||
| ```
 | ||
| 
 | ||
| ### Диагностика тестов
 | ||
| 
 | ||
| ```bash
 | ||
| # Проверка preset'ов
 | ||
| make presets list
 | ||
| make presets info PRESET=default
 | ||
| 
 | ||
| # Проверка контейнеров
 | ||
| docker ps -a --filter "network=labnet"
 | ||
| docker network inspect labnet
 | ||
| 
 | ||
| # Просмотр логов
 | ||
| docker logs -f $(docker ps -aq --filter "network=labnet" | head -1)
 | ||
| ```
 | ||
| 
 | ||
| ### Очистка
 | ||
| 
 | ||
| ```bash
 | ||
| # Очистка контейнеров Molecule
 | ||
| make clean-containers
 | ||
| 
 | ||
| # Очистка образов
 | ||
| make docker clean
 | ||
| 
 | ||
| # Полная очистка
 | ||
| make docker purge
 | ||
| ```
 | ||
| 
 | ||
| ## Полезные команды
 | ||
| 
 | ||
| ### Просмотр информации
 | ||
| 
 | ||
| ```bash
 | ||
| # Список всех ролей
 | ||
| make role list
 | ||
| 
 | ||
| # Список preset'ов
 | ||
| make presets list
 | ||
| 
 | ||
| # Информация об образах
 | ||
| make docker info
 | ||
| 
 | ||
| # Справка по командам
 | ||
| make help
 | ||
| ```
 | ||
| 
 | ||
| ### Docker операции
 | ||
| 
 | ||
| ```bash
 | ||
| # Проверка builder'а
 | ||
| make docker check-builder
 | ||
| 
 | ||
| # Диагностика buildx
 | ||
| make docker diagnose
 | ||
| 
 | ||
| # Настройка builder'а
 | ||
| make docker setup-builder
 | ||
| 
 | ||
| # Пересборка образов
 | ||
| make docker rebuild
 | ||
| ```
 | ||
| 
 | ||
| ### Vault операции
 | ||
| 
 | ||
| ```bash
 | ||
| # Создание vault
 | ||
| make vault init
 | ||
| 
 | ||
| # Работа с секретами
 | ||
| make vault create
 | ||
| make vault edit
 | ||
| make vault show
 | ||
| 
 | ||
| # Проверка vault
 | ||
| make vault check
 | ||
| ```
 | ||
| 
 | ||
| ## Заключение
 | ||
| 
 | ||
| Эти примеры демонстрируют основные возможности DevOpsLab:
 | ||
| 
 | ||
| 1. **Быстрое тестирование** с minimal preset
 | ||
| 2. **Полное тестирование** с all-images preset
 | ||
| 3. **Создание ролей** через интерактивные команды
 | ||
| 4. **Работа с Vault** для секретов
 | ||
| 5. **Диагностика** и отладка тестов
 | ||
| 6. **Интеграция CI/CD** для автоматизации
 | ||
| 
 | ||
| Для получения дополнительной информации:
 | ||
| - Используйте `make help` для списка команд
 | ||
| - Читайте документацию в `docs/` директории
 | ||
| - Изучайте примеры в `roles/docker/`
 | ||
| 
 | ||
| ---
 | ||
| 
 | ||
| **Автор:** Сергей Антропов  
 | ||
| **Сайт:** https://devops.org.ru
 | ||
| 
 |