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
|
||||
**Версия:** 2.0.0
|
||||
|
||||
## 🚀 Установка и настройка
|
||||
|
||||
### 1. Клонирование репозитория
|
||||
|
||||
```bash
|
||||
git clone https://github.com/your-username/AnsibleLab.git
|
||||
git clone ssh://git@git.antropoff.ru:222/Ansible/AnsibleLab.git
|
||||
cd AnsibleLab
|
||||
```
|
||||
|
||||
### 2. Настройка Docker
|
||||
### 2. Проверка структуры проекта
|
||||
|
||||
```bash
|
||||
# Просмотр доступных ролей
|
||||
make role list
|
||||
|
||||
# Просмотр доступных preset'ов
|
||||
make presets list
|
||||
```
|
||||
|
||||
### 3. Настройка Docker (опционально)
|
||||
|
||||
Если вы хотите собрать собственные образы:
|
||||
|
||||
```bash
|
||||
# Настройка multi-arch builder
|
||||
@@ -25,22 +38,11 @@ make docker build
|
||||
make docker info
|
||||
```
|
||||
|
||||
**Примечание:** Используются готовые образы из Docker Hub `inecs/ansible-lab`.
|
||||
|
||||
## 🧪 Первое тестирование
|
||||
|
||||
### 1. Управление ролями
|
||||
|
||||
```bash
|
||||
# Просмотр всех ролей
|
||||
make role list
|
||||
|
||||
# Создание новой роли (интерактивно)
|
||||
make role create
|
||||
|
||||
# Удаление роли (интерактивно)
|
||||
make role delete
|
||||
```
|
||||
|
||||
### 2. Просмотр доступных preset'ов
|
||||
### 1. Просмотр доступных preset'ов
|
||||
|
||||
```bash
|
||||
# Список всех preset'ов
|
||||
@@ -50,42 +52,58 @@ make presets list
|
||||
make presets info PRESET=default
|
||||
```
|
||||
|
||||
### 3. Тестирование роли ping
|
||||
### 2. Тестирование роли ping
|
||||
|
||||
```bash
|
||||
# Тестирование с default preset
|
||||
make role test
|
||||
|
||||
# Тестирование с minimal preset
|
||||
# Тестирование с minimal preset (1 хост)
|
||||
make role test minimal
|
||||
```
|
||||
|
||||
### 3. Проверка результатов
|
||||
|
||||
```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
|
||||
# Создание директории роли
|
||||
mkdir -p roles/my-role/{tasks,handlers,templates,files,vars,defaults,meta}
|
||||
|
||||
# Создание основных файлов
|
||||
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
|
||||
# Интерактивное создание роли
|
||||
make role create
|
||||
# Введите имя роли (например: nginx)
|
||||
```
|
||||
|
||||
### 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`:**
|
||||
```yaml
|
||||
@@ -94,28 +112,19 @@ touch roles/my-role/README.md
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
- name: Установка пакетов
|
||||
package:
|
||||
name: "{{ my_role_packages }}"
|
||||
state: present
|
||||
when: my_role_enabled | default(true)
|
||||
tags:
|
||||
- my-role
|
||||
- install
|
||||
- name: Проверка установленных пакетов
|
||||
debug:
|
||||
msg: "Роль {{ role_name }} выполняется на {{ ansible_hostname }}"
|
||||
|
||||
- name: Настройка конфигурации
|
||||
template:
|
||||
src: my-role.conf.j2
|
||||
dest: /etc/my-role/my-role.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: restart my-role
|
||||
tags:
|
||||
- my-role
|
||||
- config
|
||||
- name: Установка пакетов (пример)
|
||||
package:
|
||||
name: "{{ my_role_packages | default([]) }}"
|
||||
state: present
|
||||
when: my_role_packages is defined
|
||||
```
|
||||
|
||||
### 4. Настройка defaults
|
||||
|
||||
**`roles/my-role/defaults/main.yml`:**
|
||||
```yaml
|
||||
---
|
||||
@@ -123,172 +132,104 @@ touch roles/my-role/README.md
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
# Основные настройки
|
||||
my_role_packages: []
|
||||
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
|
||||
# Lint проверка
|
||||
make role lint
|
||||
# Проверка синтаксиса
|
||||
make role lint my-role
|
||||
|
||||
# Тестирование в Docker
|
||||
# Тестирование с минимальным preset
|
||||
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]
|
||||
db1.example.com ansible_host=192.168.1.20
|
||||
db2.example.com ansible_host=192.168.1.21
|
||||
### Docker
|
||||
|
||||
[all:vars]
|
||||
ansible_user=devops
|
||||
ansible_ssh_private_key_file=~/.ssh/id_rsa
|
||||
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
|
||||
```
|
||||
|
||||
### 2. Настройка SSH ключей
|
||||
Универсальная роль для установки Docker и Docker Compose.
|
||||
|
||||
```bash
|
||||
# Генерация SSH ключа
|
||||
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
|
||||
|
||||
# Копирование ключа на серверы
|
||||
ssh-copy-id devops@web1.example.com
|
||||
ssh-copy-id devops@web2.example.com
|
||||
# Тестирование роли docker
|
||||
make role lint docker
|
||||
make role test docker
|
||||
```
|
||||
|
||||
### 3. Тестирование подключения
|
||||
**Документация:** [roles/docker/README.md](../roles/docker/README.md)
|
||||
|
||||
### DevOps
|
||||
|
||||
Роль для установки и настройки инструментов DevOps.
|
||||
|
||||
**Документация:** [roles/devops/README.md](../roles/devops/README.md)
|
||||
|
||||
### Ping
|
||||
|
||||
Простая роль для проверки ping.
|
||||
|
||||
```bash
|
||||
# Проверка подключения
|
||||
ansible all -i inventory/hosts.ini -m ping
|
||||
|
||||
# Dry-run развертывания
|
||||
make role deploy
|
||||
# Тестирование роли ping
|
||||
make role lint ping
|
||||
make role test ping
|
||||
```
|
||||
|
||||
### 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
|
||||
# Развертывание на продакшн
|
||||
make role deploy
|
||||
# Подтвердить развертывание: y
|
||||
```
|
||||
|
||||
## 🔐 Управление секретами
|
||||
|
||||
### 1. Инициализация vault
|
||||
|
||||
```bash
|
||||
# Создание файла пароля
|
||||
# Создание файла с паролем
|
||||
make vault init
|
||||
|
||||
# Создание файла секретов
|
||||
make vault create
|
||||
```
|
||||
|
||||
### 2. Работа с секретами
|
||||
### Создание и редактирование секретов
|
||||
|
||||
```bash
|
||||
# Редактирование секретов
|
||||
# Создание нового секрета
|
||||
make vault create
|
||||
|
||||
# Редактирование существующего
|
||||
make vault edit
|
||||
|
||||
# Просмотр секретов
|
||||
# Просмотр секрета
|
||||
make vault show
|
||||
|
||||
# Шифрование файла
|
||||
make vault encrypt
|
||||
```
|
||||
|
||||
## 🏗️ CI/CD интеграция
|
||||
## 📖 Дополнительная документация
|
||||
|
||||
### 1. GitHub Actions
|
||||
|
||||
```yaml
|
||||
# .github/workflows/ansible-test.yml
|
||||
name: Ansible Testing
|
||||
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
|
||||
- [Руководство по Molecule](molecule-guide.md)
|
||||
- [Создание ролей](creating-roles.md)
|
||||
- [Docker образы](dockerfiles.md)
|
||||
- [Preset система](presets-by-os.md)
|
||||
- [Настройка CI/CD](cicd-setup.md)
|
||||
|
||||
Reference in New Issue
Block a user