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
- Исправлены ссылки на репозиторий - Добавлена актуальная структура ролей (docker, devops, ping) - Обновлены команды и примеры под текущую версию проекта - Добавлена информация о preset системе - Убраны устаревшие разделы (CI/CD, мониторинг) - Упрощена структура для быстрого старта Автор: Сергей Антропов Сайт: https://devops.org.ru
236 lines
5.9 KiB
Markdown
236 lines
5.9 KiB
Markdown
# Быстрый старт с AnsibleLab
|
||
|
||
**Автор:** Сергей Антропов
|
||
**Сайт:** https://devops.org.ru
|
||
**Версия:** 2.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)
|