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
- Удален файл env.example (не использовался в проекте) - Обновлена документация в README.md и docs/getting-started.md - Удалены упоминания о .env файлах из инструкций - Обновлены инструкции по настройке проекта через переменные окружения Проект использует настройки через Makefile и переменные окружения, а не через .env файлы.
295 lines
6.2 KiB
Markdown
295 lines
6.2 KiB
Markdown
# Быстрый старт с AnsibleLab
|
||
|
||
**Автор:** Сергей Антропов
|
||
**Сайт:** https://devops.org.ru
|
||
|
||
## 🚀 Установка и настройка
|
||
|
||
### 1. Клонирование репозитория
|
||
|
||
```bash
|
||
git clone https://github.com/your-username/AnsibleLab.git
|
||
cd AnsibleLab
|
||
```
|
||
|
||
### 2. Настройка Docker
|
||
|
||
```bash
|
||
# Настройка multi-arch builder
|
||
make docker setup-builder
|
||
|
||
# Сборка всех образов
|
||
make docker build
|
||
|
||
# Проверка собранных образов
|
||
make docker info
|
||
```
|
||
|
||
## 🧪 Первое тестирование
|
||
|
||
### 1. Управление ролями
|
||
|
||
```bash
|
||
# Просмотр всех ролей
|
||
make role list
|
||
|
||
# Создание новой роли (интерактивно)
|
||
make role create
|
||
|
||
# Удаление роли (интерактивно)
|
||
make role delete
|
||
```
|
||
|
||
### 2. Просмотр доступных preset'ов
|
||
|
||
```bash
|
||
# Список всех preset'ов
|
||
make presets list
|
||
|
||
# Информация о конкретном preset'е
|
||
make presets info PRESET=default
|
||
```
|
||
|
||
### 3. Тестирование роли ping
|
||
|
||
```bash
|
||
# Тестирование с default preset
|
||
make role test
|
||
|
||
# Тестирование с minimal preset
|
||
make role test minimal
|
||
```
|
||
|
||
### 3. Проверка результатов
|
||
|
||
```bash
|
||
# Просмотр логов
|
||
docker logs ansible-controller
|
||
|
||
# Вход в контейнер для отладки
|
||
docker exec -it ansible-controller bash
|
||
```
|
||
|
||
## 🔧 Создание первой роли
|
||
|
||
### 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
|
||
```
|
||
|
||
### 2. Разработка роли
|
||
|
||
**`roles/my-role/tasks/main.yml`:**
|
||
```yaml
|
||
---
|
||
# Основные задачи для роли my-role
|
||
# Автор: Сергей Антропов
|
||
# Сайт: https://devops.org.ru
|
||
|
||
- name: Установка пакетов
|
||
package:
|
||
name: "{{ my_role_packages }}"
|
||
state: present
|
||
when: my_role_enabled | default(true)
|
||
tags:
|
||
- my-role
|
||
- install
|
||
|
||
- 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
|
||
```
|
||
|
||
**`roles/my-role/defaults/main.yml`:**
|
||
```yaml
|
||
---
|
||
# Переменные по умолчанию для роли my-role
|
||
# Автор: Сергей Антропов
|
||
# Сайт: https://devops.org.ru
|
||
|
||
# Основные настройки
|
||
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. Тестирование роли
|
||
|
||
```bash
|
||
# Lint проверка
|
||
make role lint
|
||
|
||
# Тестирование в Docker
|
||
make role test minimal
|
||
|
||
# Тестирование с custom preset
|
||
make role test my-custom-preset
|
||
```
|
||
|
||
## 🚀 Развертывание на продакшн
|
||
|
||
### 1. Настройка инвентори
|
||
|
||
**`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
|
||
|
||
[all:vars]
|
||
ansible_user=devops
|
||
ansible_ssh_private_key_file=~/.ssh/id_rsa
|
||
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
|
||
```
|
||
|
||
### 2. Настройка SSH ключей
|
||
|
||
```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
|
||
```
|
||
|
||
### 3. Тестирование подключения
|
||
|
||
```bash
|
||
# Проверка подключения
|
||
ansible all -i inventory/hosts.ini -m ping
|
||
|
||
# Dry-run развертывания
|
||
make role deploy
|
||
```
|
||
|
||
### 4. Развертывание
|
||
|
||
```bash
|
||
# Развертывание на продакшн
|
||
make role deploy
|
||
# Подтвердить развертывание: y
|
||
```
|
||
|
||
## 🔐 Управление секретами
|
||
|
||
### 1. Инициализация vault
|
||
|
||
```bash
|
||
# Создание файла пароля
|
||
make vault init
|
||
|
||
# Создание файла секретов
|
||
make vault create
|
||
```
|
||
|
||
### 2. Работа с секретами
|
||
|
||
```bash
|
||
# Редактирование секретов
|
||
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
|