Files
DevOpsLab/docs/examples.md
Сергей Антропов 4e380971a6
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
docs: полностью переписана документация в docs/
- Обновлены все файлы под актуальные команды Makefile
- Исправлены устаревшие команды (preset-list, container-info и т.д.)
- Добавлена версия 2.0.0 во все файлы
- examples.md полностью переписан с актуальными примерами
- creating-roles.md обновлен с правильными командами
- Удалены устаревшие примеры и команды

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-10-26 01:22:47 +03:00

7.2 KiB
Raw Blame History

Примеры использования AnsibleLab

Автор: Сергей Антропов
Сайт: 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

Заключение

Эти примеры демонстрируют основные возможности AnsibleLab:

  1. Быстрое тестирование с minimal preset
  2. Полное тестирование с all-images preset
  3. Создание ролей через интерактивные команды
  4. Работа с Vault для секретов
  5. Диагностика и отладка тестов
  6. Интеграция CI/CD для автоматизации

Для получения дополнительной информации:

  • Используйте make help для списка команд
  • Читайте документацию в docs/ директории
  • Изучайте примеры в roles/docker/

Автор: Сергей Антропов
Сайт: https://devops.org.ru