Files
DevOpsLab/docs/getting-started.md
Сергей Антропов d8e1052e7b refactor: переименование проекта AnsibleLab -> DevOpsLab
- Заменено название проекта во всех файлах проекта
- Обновлены:
  * 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)
2025-10-26 12:28:05 +03:00

5.9 KiB
Raw Blame History

Быстрый старт с 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

📖 Дополнительная документация