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
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:
@@ -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
|
|
||||||
|
|||||||
Reference in New Issue
Block a user