- Заменено название проекта во всех файлах проекта - Обновлены: * 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)
5.9 KiB
5.9 KiB
Быстрый старт с DevOpsLab
Автор: Сергей Антропов
Сайт: https://devops.org.ru
Версия: 3.0.0
🚀 Установка и настройка
1. Клонирование репозитория
git clone ssh://git@git.antropoff.ru:222/Ansible/DevOpsLab.git
cd DevOpsLab
2. Проверка структуры проекта
# Просмотр доступных ролей
make role list
# Просмотр доступных preset'ов
make presets list
3. Настройка Docker (опционально)
Если вы хотите собрать собственные образы:
# Настройка multi-arch builder
make docker setup-builder
# Сборка всех образов
make docker build
# Проверка собранных образов
make docker info
Примечание: Используются готовые образы из Docker Hub inecs/ansible-lab.
🧪 Первое тестирование
1. Просмотр доступных preset'ов
# Список всех preset'ов
make presets list
# Информация о конкретном preset'е
make presets info PRESET=default
2. Тестирование роли ping
# Тестирование с default preset
make role test
# Тестирование с minimal preset (1 хост)
make role test minimal
3. Проверка результатов
# Проверка через логи
docker logs ansible-controller 2>/dev/null || echo "Контейнер не запущен"
# Просмотр созданных контейнеров
docker ps -a --filter "network=labnet"
🔧 Создание первой роли
1. Создание новой роли
# Интерактивное создание роли
make role create
# Введите имя роли (например: nginx)
2. Редактирование роли
После создания роли будет создана структура в roles/<имя-роли>/:
roles/my-role/
├── tasks/
│ └── main.yml
├── handlers/
│ └── main.yml
├── defaults/
│ └── main.yml
├── vars/
│ └── main.yml
├── meta/
│ └── main.yml
├── templates/
├── files/
└── README.md
3. Написание задач роли
roles/my-role/tasks/main.yml:
---
# Основные задачи для роли my-role
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
- name: Проверка установленных пакетов
debug:
msg: "Роль {{ role_name }} выполняется на {{ ansible_hostname }}"
- name: Установка пакетов (пример)
package:
name: "{{ my_role_packages | default([]) }}"
state: present
when: my_role_packages is defined
4. Настройка defaults
roles/my-role/defaults/main.yml:
---
# Переменные по умолчанию для роли my-role
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
my_role_packages: []
my_role_enabled: true
5. Тестирование роли
# Проверка синтаксиса
make role lint my-role
# Тестирование с минимальным preset
make role test minimal
6. Добавление роли в deploy.yml
Роль автоматически добавляется в roles/deploy.yml при создании.
📚 Доступные роли
Docker
Универсальная роль для установки Docker и Docker Compose.
# Тестирование роли docker
make role lint docker
make role test docker
Документация: roles/docker/README.md
DevOps
Роль для установки и настройки инструментов DevOps.
Документация: roles/devops/README.md
Ping
Простая роль для проверки ping.
# Тестирование роли ping
make role lint ping
make role test ping
Документация: roles/ping/README.md
🎯 Preset система
Базовые preset'ы
default- Стандартный preset (2 хоста: Ubuntu + Debian)minimal- Минимальный preset (1 хост: Debian)test- Базовый тест (2 хоста)
Preset'ы по ОС
- Ubuntu:
ubuntu20,ubuntu22,ubuntu24,ubuntu-all - Debian:
debian9,debian10,debian11,debian12,debian-all - CentOS:
centos7,centos8,centos9,centos-all
Специализированные preset'ы
all-images- Все образы (16 хостов)multi-os- Multi-OS тестирование (8 хостов)docker-full- Docker тестирование (4 хоста)performance- Тест производительности (8 хостов)security- Тест безопасности (6 хостов)
🔐 Работа с секретами
Инициализация Vault
# Создание файла с паролем
make vault init
Создание и редактирование секретов
# Создание нового секрета
make vault create
# Редактирование существующего
make vault edit
# Просмотр секрета
make vault show