# Быстрый старт с AnsibleLab **Автор:** Сергей Антропов **Сайт:** https://devops.org.ru **Версия:** 3.0.0 ## 🚀 Установка и настройка ### 1. Клонирование репозитория ```bash git clone ssh://git@git.antropoff.ru:222/Ansible/AnsibleLab.git cd AnsibleLab ``` ### 2. Проверка структуры проекта ```bash # Просмотр доступных ролей make role list # Просмотр доступных preset'ов make presets list ``` ### 3. Настройка Docker (опционально) Если вы хотите собрать собственные образы: ```bash # Настройка multi-arch builder make docker setup-builder # Сборка всех образов make docker build # Проверка собранных образов make docker info ``` **Примечание:** Используются готовые образы из Docker Hub `inecs/ansible-lab`. ## 🧪 Первое тестирование ### 1. Просмотр доступных preset'ов ```bash # Список всех preset'ов make presets list # Информация о конкретном preset'е make presets info PRESET=default ``` ### 2. Тестирование роли ping ```bash # Тестирование с default preset make role test # Тестирование с minimal preset (1 хост) make role test minimal ``` ### 3. Проверка результатов ```bash # Проверка через логи docker logs ansible-controller 2>/dev/null || echo "Контейнер не запущен" # Просмотр созданных контейнеров docker ps -a --filter "network=labnet" ``` ## 🔧 Создание первой роли ### 1. Создание новой роли ```bash # Интерактивное создание роли 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`:** ```yaml --- # Основные задачи для роли 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`:** ```yaml --- # Переменные по умолчанию для роли my-role # Автор: Сергей Антропов # Сайт: https://devops.org.ru my_role_packages: [] my_role_enabled: true ``` ### 5. Тестирование роли ```bash # Проверка синтаксиса make role lint my-role # Тестирование с минимальным preset make role test minimal ``` ### 6. Добавление роли в deploy.yml Роль автоматически добавляется в `roles/deploy.yml` при создании. ## 📚 Доступные роли ### Docker Универсальная роль для установки Docker и Docker Compose. ```bash # Тестирование роли docker make role lint docker make role test docker ``` **Документация:** [roles/docker/README.md](../roles/docker/README.md) ### DevOps Роль для установки и настройки инструментов DevOps. **Документация:** [roles/devops/README.md](../roles/devops/README.md) ### Ping Простая роль для проверки ping. ```bash # Тестирование роли ping make role lint ping make role test ping ``` **Документация:** [roles/ping/README.md](../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 ```bash # Создание файла с паролем make vault init ``` ### Создание и редактирование секретов ```bash # Создание нового секрета make vault create # Редактирование существующего make vault edit # Просмотр секрета make vault show ``` ## 📖 Дополнительная документация - [Руководство по Molecule](molecule-guide.md) - [Создание ролей](creating-roles.md) - [Docker образы](dockerfiles.md) - [Preset система](presets-by-os.md) - [Настройка CI/CD](cicd-setup.md)