# Примеры использования DevOpsLab **Автор:** Сергей Антропов **Сайт:** https://devops.org.ru **Версия:** 2.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