Some checks failed
Ansible Testing / lint (push) Has been cancelled
Ansible Testing / test (default) (push) Has been cancelled
Ansible Testing / test (minimal) (push) Has been cancelled
Ansible Testing / test (performance) (push) Has been cancelled
Ansible Testing / deploy-check (push) Has been cancelled
7.2 KiB
7.2 KiB
Примеры использования DevOpsLab
Автор: Сергей Антропов
Сайт: https://devops.org.ru
Версия: 2.0.0
Быстрый старт
Базовое тестирование роли
# Тестирование роли ping с minimal preset (1 хост)
make role test minimal
# Тестирование роли docker с default preset (2 хоста)
make role lint docker
make role test docker
Просмотр доступных preset'ов
# Список всех preset'ов
make presets list
# Информация о конкретном preset'е
make presets info PRESET=default
make presets info PRESET=all-images
Пример 1: Тестирование роли Docker
Описание
Тестирование универсальной роли Docker на разных ОС.
# 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
Проверка результатов
# Просмотр созданных контейнеров
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: Создание собственной роли
Создание роли
# Интерактивное создание новой роли
make role create
# Введите имя роли: nginx
# Редактирование роли
cd roles/nginx
nano tasks/main.yml
Разработка роли
roles/nginx/tasks/main.yml:
---
- name: Установка nginx
package:
name: nginx
state: present
when: ansible_os_family in ['Debian', 'RedHat']
- name: Запуск nginx
systemd:
name: nginx
state: started
enabled: yes
Тестирование роли
# 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 хост)
# Быстрое тестирование на 1 хосте
make role test minimal
# Проверка контейнера
docker ps -a --filter "network=labnet"
Default preset (2 хоста)
# Тестирование на Ubuntu + Debian
make role test default
# Проверка нескольких контейнеров
docker ps -a --filter "network=labnet"
All-images preset (16 хостов)
# Полное тестирование всех ОС
make role test all-images
# Проверка всех контейнеров
docker ps -a --filter "network=labnet" --format "table {{.Names}}\t{{.Status}}"
Preset'ы по ОС
# Тестирование на всех версиях Ubuntu
make role test ubuntu-all
# Тестирование на всех версиях Debian
make role test debian-all
# Тестирование на всех версиях CentOS
make role test centos-all
Пример 4: Работа с Ansible Vault
Создание секретов
# Инициализация vault
make vault init
# Создание нового файла секретов
make vault create
# Имя файла: secrets
Редактирование секретов
# Редактирование
make vault edit
# Имя файла: secrets
# Просмотр секретов
make vault show
# Имя файла: secrets
Использование в тестировании
Секреты автоматически расшифровываются при запуске тестов и шифруются обратно после завершения.
Пример 5: CI/CD интеграция
GitHub Actions
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
test:
script:
- make role lint
- make role test minimal
only:
- merge_requests
- main
Пример 6: Диагностика и отладка
Проверка линтинга
# Линт всех ролей
make role lint
# Линт конкретной роли
make role lint docker
# Линт с подробным выводом
ansible-lint roles/docker/ -vv
Диагностика тестов
# Проверка 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)
Очистка
# Очистка контейнеров Molecule
make clean-containers
# Очистка образов
make docker clean
# Полная очистка
make docker purge
Полезные команды
Просмотр информации
# Список всех ролей
make role list
# Список preset'ов
make presets list
# Информация об образах
make docker info
# Справка по командам
make help
Docker операции
# Проверка builder'а
make docker check-builder
# Диагностика buildx
make docker diagnose
# Настройка builder'а
make docker setup-builder
# Пересборка образов
make docker rebuild
Vault операции
# Создание vault
make vault init
# Работа с секретами
make vault create
make vault edit
make vault show
# Проверка vault
make vault check
Заключение
Эти примеры демонстрируют основные возможности DevOpsLab:
- Быстрое тестирование с minimal preset
- Полное тестирование с all-images preset
- Создание ролей через интерактивные команды
- Работа с Vault для секретов
- Диагностика и отладка тестов
- Интеграция CI/CD для автоматизации
Для получения дополнительной информации:
- Используйте
make helpдля списка команд - Читайте документацию в
docs/директории - Изучайте примеры в
roles/docker/
Автор: Сергей Антропов
Сайт: https://devops.org.ru