docs: обновлен getting-started.md под реальную структуру проекта
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
This commit is contained in:
Сергей Антропов
2025-10-26 01:19:02 +03:00
parent f410f7964c
commit afa0be02fd

View File

@@ -2,17 +2,30 @@
**Автор:** Сергей Антропов **Автор:** Сергей Антропов
**Сайт:** https://devops.org.ru **Сайт:** https://devops.org.ru
**Версия:** 2.0.0
## 🚀 Установка и настройка ## 🚀 Установка и настройка
### 1. Клонирование репозитория ### 1. Клонирование репозитория
```bash ```bash
git clone https://github.com/your-username/AnsibleLab.git git clone ssh://git@git.antropoff.ru:222/Ansible/AnsibleLab.git
cd AnsibleLab cd AnsibleLab
``` ```
### 2. Настройка Docker ### 2. Проверка структуры проекта
```bash
# Просмотр доступных ролей
make role list
# Просмотр доступных preset'ов
make presets list
```
### 3. Настройка Docker (опционально)
Если вы хотите собрать собственные образы:
```bash ```bash
# Настройка multi-arch builder # Настройка multi-arch builder
@@ -25,22 +38,11 @@ make docker build
make docker info make docker info
``` ```
**Примечание:** Используются готовые образы из Docker Hub `inecs/ansible-lab`.
## 🧪 Первое тестирование ## 🧪 Первое тестирование
### 1. Управление ролями ### 1. Просмотр доступных preset'ов
```bash
# Просмотр всех ролей
make role list
# Создание новой роли (интерактивно)
make role create
# Удаление роли (интерактивно)
make role delete
```
### 2. Просмотр доступных preset'ов
```bash ```bash
# Список всех preset'ов # Список всех preset'ов
@@ -50,42 +52,58 @@ make presets list
make presets info PRESET=default make presets info PRESET=default
``` ```
### 3. Тестирование роли ping ### 2. Тестирование роли ping
```bash ```bash
# Тестирование с default preset # Тестирование с default preset
make role test make role test
# Тестирование с minimal preset # Тестирование с minimal preset (1 хост)
make role test minimal make role test minimal
``` ```
### 3. Проверка результатов ### 3. Проверка результатов
```bash ```bash
# Просмотр логов # Проверка через логи
docker logs ansible-controller docker logs ansible-controller 2>/dev/null || echo "Контейнер не запущен"
# Вход в контейнер для отладки # Просмотр созданных контейнеров
docker exec -it ansible-controller bash docker ps -a --filter "network=labnet"
``` ```
## 🔧 Создание первой роли ## 🔧 Создание первой роли
### 1. Создание структуры роли ### 1. Создание новой роли
```bash ```bash
# Создание директории роли # Интерактивное создание роли
mkdir -p roles/my-role/{tasks,handlers,templates,files,vars,defaults,meta} make role create
# Введите имя роли (например: nginx)
# Создание основных файлов
touch roles/my-role/{tasks,handlers,meta}/main.yml
touch roles/my-role/defaults/main.yml
touch roles/my-role/vars/main.yml
touch roles/my-role/README.md
``` ```
### 2. Разработка роли ### 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`:** **`roles/my-role/tasks/main.yml`:**
```yaml ```yaml
@@ -94,28 +112,19 @@ touch roles/my-role/README.md
# Автор: Сергей Антропов # Автор: Сергей Антропов
# Сайт: https://devops.org.ru # Сайт: https://devops.org.ru
- name: Установка пакетов - name: Проверка установленных пакетов
package: debug:
name: "{{ my_role_packages }}" msg: "Роль {{ role_name }} выполняется на {{ ansible_hostname }}"
state: present
when: my_role_enabled | default(true)
tags:
- my-role
- install
- name: Настройка конфигурации - name: Установка пакетов (пример)
template: package:
src: my-role.conf.j2 name: "{{ my_role_packages | default([]) }}"
dest: /etc/my-role/my-role.conf state: present
owner: root when: my_role_packages is defined
group: root
mode: '0644'
notify: restart my-role
tags:
- my-role
- config
``` ```
### 4. Настройка defaults
**`roles/my-role/defaults/main.yml`:** **`roles/my-role/defaults/main.yml`:**
```yaml ```yaml
--- ---
@@ -123,172 +132,104 @@ touch roles/my-role/README.md
# Автор: Сергей Антропов # Автор: Сергей Антропов
# Сайт: https://devops.org.ru # Сайт: https://devops.org.ru
# Основные настройки my_role_packages: []
my_role_enabled: true my_role_enabled: true
my_role_packages:
- nginx
- curl
# Конфигурация
my_role_config_file: /etc/my-role/my-role.conf
my_role_log_level: info
``` ```
### 3. Тестирование роли ### 5. Тестирование роли
```bash ```bash
# Lint проверка # Проверка синтаксиса
make role lint make role lint my-role
# Тестирование в Docker # Тестирование с минимальным preset
make role test minimal make role test minimal
# Тестирование с custom preset
make role test my-custom-preset
``` ```
## 🚀 Развертывание на продакшн ### 6. Добавление роли в deploy.yml
### 1. Настройка инвентори Роль автоматически добавляется в `roles/deploy.yml` при создании.
**`inventory/hosts.ini`:** ## 📚 Доступные роли
```ini
# Продакшн серверы
[web_servers]
web1.example.com ansible_host=192.168.1.10
web2.example.com ansible_host=192.168.1.11
[db_servers] ### Docker
db1.example.com ansible_host=192.168.1.20
db2.example.com ansible_host=192.168.1.21
[all:vars] Универсальная роль для установки Docker и Docker Compose.
ansible_user=devops
ansible_ssh_private_key_file=~/.ssh/id_rsa
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
```
### 2. Настройка SSH ключей
```bash ```bash
# Генерация SSH ключа # Тестирование роли docker
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa make role lint docker
make role test docker
# Копирование ключа на серверы
ssh-copy-id devops@web1.example.com
ssh-copy-id devops@web2.example.com
``` ```
### 3. Тестирование подключения **Документация:** [roles/docker/README.md](../roles/docker/README.md)
### DevOps
Роль для установки и настройки инструментов DevOps.
**Документация:** [roles/devops/README.md](../roles/devops/README.md)
### Ping
Простая роль для проверки ping.
```bash ```bash
# Проверка подключения # Тестирование роли ping
ansible all -i inventory/hosts.ini -m ping make role lint ping
make role test ping
# Dry-run развертывания
make role deploy
``` ```
### 4. Развертывание **Документация:** [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 ```bash
# Развертывание на продакшн # Создание файла с паролем
make role deploy
# Подтвердить развертывание: y
```
## 🔐 Управление секретами
### 1. Инициализация vault
```bash
# Создание файла пароля
make vault init make vault init
# Создание файла секретов
make vault create
``` ```
### 2. Работа с секретами ### Создание и редактирование секретов
```bash ```bash
# Редактирование секретов # Создание нового секрета
make vault create
# Редактирование существующего
make vault edit make vault edit
# Просмотр секретов # Просмотр секрета
make vault show make vault show
# Шифрование файла
make vault encrypt
``` ```
## 🏗️ CI/CD интеграция ## 📖 Дополнительная документация
### 1. GitHub Actions - [Руководство по Molecule](molecule-guide.md)
- [Создание ролей](creating-roles.md)
```yaml - [Docker образы](dockerfiles.md)
# .github/workflows/ansible-test.yml - [Preset система](presets-by-os.md)
name: Ansible Testing - [Настройка CI/CD](cicd-setup.md)
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run tests
run: make role test
```
### 2. Azure DevOps
```yaml
# azure-pipelines.yml
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
stages:
- stage: Test
jobs:
- job: TestJob
steps:
- script: make role test
```
## 📊 Мониторинг и диагностика
### 1. Диагностика Docker
```bash
# Диагностика buildx проблем
make docker diagnose
# Проверка builder'а
make docker setup-builder
# Сброс builder'а при проблемах
make docker reset-builder
```
### 2. Логи и отчеты
```bash
# Просмотр логов контейнера
docker logs ansible-controller
# Вход в контейнер для отладки
docker exec -it ansible-controller bash
```
## 🎯 Следующие шаги
1. **Изучите документацию** по [созданию ролей](creating-roles.md)
2. **Настройте CI/CD** по [инструкции](cicd-setup.md)
3. **Изучите Docker образы** в [dockerfiles/README.md](../dockerfiles/README.md)
4. **Настройте мониторинг** по [руководству](monitoring.md)
---
**Автор:** Сергей Антропов
**Сайт:** https://devops.org.ru