docs: обновлены QUICKSTART файлы в roles/
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
- roles/ping/QUICKSTART.md - обновлены команды Makefile, добавлены новые возможности - roles/devops/QUICKSTART.md - обновлены команды, добавлена версия 2.0.0 - Добавлены примеры проверки результатов в контейнерах - Обновлены примеры использования с актуальными командами - Добавлены разделы про теги и дополнительные возможности Автор: Сергей Антропов Сайт: https://devops.org.ru
This commit is contained in:
@@ -1,42 +1,76 @@
|
|||||||
# Быстрый старт - Роль devops
|
# Быстрый старт - Роль devops
|
||||||
|
|
||||||
## Автор
|
**Автор:** Сергей Антропов
|
||||||
Сергей Антропов
|
**Сайт:** https://devops.org.ru
|
||||||
Сайт: https://devops.org.ru
|
**Версия:** 2.0.0
|
||||||
|
|
||||||
## Что делает роль
|
## Что делает роль
|
||||||
|
|
||||||
Роль `devops` автоматически:
|
Роль автоматически:
|
||||||
1. ✅ Создает пользователя `devops`
|
1. ✅ Создает пользователя `devops`
|
||||||
2. ✅ Генерирует безопасный пароль (30 символов)
|
2. ✅ Генерирует безопасный пароль (30 символов)
|
||||||
3. ✅ Настраивает SSH доступ по ключу
|
3. ✅ Настраивает SSH доступ по ключу
|
||||||
4. ✅ Добавляет права sudo без пароля
|
4. ✅ Добавляет права sudo без пароля
|
||||||
5. ✅ Создает домашнюю директорию
|
5. ✅ Создает домашнюю директорию
|
||||||
6. ✅ Автоматически определяет ОС и настраивает группы
|
6. ✅ Автоматически определяет ОС и настраивает группы
|
||||||
7. ✅ Поддерживает все ОС из dockerfiles (Ubuntu, Debian, RHEL, CentOS, Rocky, AlmaLinux, Astra Linux, ALT Linux, RedOS)
|
7. ✅ Поддерживает все ОС (Ubuntu, Debian, RHEL, CentOS, Rocky, AlmaLinux, Astra Linux, ALT Linux, RedOS)
|
||||||
|
|
||||||
## Быстрый запуск
|
## Быстрый запуск
|
||||||
|
|
||||||
### 1. Базовое использование
|
### Тестирование роли
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ansible-playbook -i inventory/hosts.ini roles/deploy.yml
|
# Lint проверка
|
||||||
|
make role lint devops
|
||||||
|
|
||||||
|
# Тестирование с minimal preset
|
||||||
|
make role test minimal
|
||||||
|
|
||||||
|
# Тестирование конкретной роли
|
||||||
|
make role test devops
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. С SSH ключом из vault
|
### Базовое использование
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# Запуск всех ролей через roles/deploy.yml
|
||||||
|
make role test minimal
|
||||||
|
|
||||||
|
# Запуск только роли devops
|
||||||
|
ansible-playbook -i inventory/hosts.ini roles/devops/playbook.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
### С SSH ключом из vault
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Создание vault
|
||||||
|
make vault init
|
||||||
|
|
||||||
|
# Добавление SSH ключа в vault/secrets.yml
|
||||||
|
# Затем запуск с vault паролем
|
||||||
ansible-playbook -i inventory/hosts.ini roles/deploy.yml \
|
ansible-playbook -i inventory/hosts.ini roles/deploy.yml \
|
||||||
--ask-vault-pass \
|
--ask-vault-pass \
|
||||||
-e "devops_ssh_public_key={{ devops_ssh_keys.public_key }}"
|
-e "devops_ssh_public_key={{ devops_ssh_keys.public_key }}"
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Только роль devops
|
|
||||||
```bash
|
|
||||||
ansible-playbook -i inventory/hosts.ini roles/devops/playbook.yml
|
|
||||||
```
|
|
||||||
|
|
||||||
## Проверка результата
|
## Проверка результата
|
||||||
|
|
||||||
После выполнения проверьте:
|
### В тестовых контейнерах
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Просмотр логов
|
||||||
|
docker logs $(docker ps -aq --filter "network=labnet" | head -1)
|
||||||
|
|
||||||
|
# Вход в контейнер
|
||||||
|
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) bash
|
||||||
|
|
||||||
|
# Проверка пользователя
|
||||||
|
id devops
|
||||||
|
sudo -l -U devops
|
||||||
|
ls -la /home/devops/.ssh/
|
||||||
|
```
|
||||||
|
|
||||||
|
### В продакшн окружении
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Проверка пользователя
|
# Проверка пользователя
|
||||||
@@ -51,13 +85,25 @@ ansible all -i inventory/hosts.ini -m shell -a "ls -la /home/devops/.ssh/"
|
|||||||
|
|
||||||
## Настройка SSH ключа
|
## Настройка SSH ключа
|
||||||
|
|
||||||
1. Добавьте ваш SSH ключ в `vault/secrets.yml`:
|
### 1. Добавление ключа в vault
|
||||||
|
|
||||||
|
Создайте/отредактируйте `vault/secrets.yml`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Редактирование vault
|
||||||
|
make vault edit
|
||||||
|
# Имя файла: secrets
|
||||||
|
```
|
||||||
|
|
||||||
|
Добавьте SSH ключ:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
devops_ssh_keys:
|
devops_ssh_keys:
|
||||||
public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7vbqajDhA... your@email.com"
|
public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7vbqajDhA... your@email.com"
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Запустите playbook с передачей ключа:
|
### 2. Запуск с SSH ключом
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ansible-playbook -i inventory/hosts.ini roles/deploy.yml \
|
ansible-playbook -i inventory/hosts.ini roles/deploy.yml \
|
||||||
--ask-vault-pass \
|
--ask-vault-pass \
|
||||||
@@ -67,6 +113,7 @@ ansible-playbook -i inventory/hosts.ini roles/deploy.yml \
|
|||||||
## Кастомизация
|
## Кастомизация
|
||||||
|
|
||||||
### Изменить имя пользователя
|
### Изменить имя пользователя
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
vars:
|
vars:
|
||||||
devops_user:
|
devops_user:
|
||||||
@@ -75,6 +122,7 @@ vars:
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Изменить длину пароля
|
### Изменить длину пароля
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
vars:
|
vars:
|
||||||
devops_password:
|
devops_password:
|
||||||
@@ -82,41 +130,98 @@ vars:
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Добавить группы
|
### Добавить группы
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
vars:
|
vars:
|
||||||
devops_user:
|
devops_user:
|
||||||
groups: ["sudo", "docker", "wheel", "adm"]
|
groups: ["sudo", "docker", "wheel", "adm"]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Использование в playbook
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- hosts: all
|
||||||
|
become: true
|
||||||
|
vars:
|
||||||
|
devops_user:
|
||||||
|
name: "admin"
|
||||||
|
groups: ["sudo", "docker"]
|
||||||
|
devops_password:
|
||||||
|
length: 40
|
||||||
|
roles:
|
||||||
|
- devops
|
||||||
|
```
|
||||||
|
|
||||||
## Безопасность
|
## Безопасность
|
||||||
|
|
||||||
- 🔒 Пароль генерируется автоматически и не сохраняется в логах
|
- 🔒 Пароль генерируется автоматически и не сохраняется в логах
|
||||||
- 🔑 SSH доступ только по ключу (если настроен)
|
- 🔑 SSH доступ только по ключу (если настроен)
|
||||||
- 🛡️ Пользователь добавлен в sudoers с правами NOPASSWD
|
- 🛡️ Пользователь добавлен в sudoers с правами NOPASSWD
|
||||||
- 📁 SSH директория имеет правильные права доступа (700)
|
- 📁 SSH директория имеет правильные права доступа (700)
|
||||||
|
- 🔐 Пароль содержит минимум 4 символа каждого типа
|
||||||
|
|
||||||
|
## Поддерживаемые ОС
|
||||||
|
|
||||||
|
- ✅ Ubuntu 20.04, 22.04, 24.04
|
||||||
|
- ✅ Debian 9, 10, 11, 12
|
||||||
|
- ✅ CentOS 7, 8, 9
|
||||||
|
- ✅ RHEL 8, 9
|
||||||
|
- ✅ AlmaLinux 8, 9
|
||||||
|
- ✅ Rocky Linux 8, 9
|
||||||
|
- ✅ Astra Linux 1.7
|
||||||
|
- ✅ ALT Linux P9
|
||||||
|
- ✅ RED OS 9
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
### Проблема: Пользователь не создан
|
### Проблема: Пользователь не создан
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Проверьте права sudo
|
# Проверьте права sudo
|
||||||
ansible all -i inventory/hosts.ini -m shell -a "sudo whoami"
|
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) sudo whoami
|
||||||
```
|
```
|
||||||
|
|
||||||
### Проблема: SSH не работает
|
### Проблема: SSH не работает
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Проверьте права на SSH директорию
|
# Проверьте права на SSH директорию
|
||||||
ansible all -i inventory/hosts.ini -m shell -a "ls -la /home/devops/.ssh/"
|
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) ls -la /home/devops/.ssh/
|
||||||
```
|
```
|
||||||
|
|
||||||
### Проблема: Sudo не работает
|
### Проблема: Sudo не работает
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Проверьте sudoers файл
|
# Проверьте sudoers файл
|
||||||
ansible all -i inventory/hosts.ini -m shell -a "sudo visudo -c"
|
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) sudo visudo -c
|
||||||
```
|
```
|
||||||
|
|
||||||
## Поддержка
|
## Теги
|
||||||
|
|
||||||
- 📧 Email: через сайт https://devops.org.ru
|
Роль поддерживает следующие теги:
|
||||||
- 📖 Документация: `roles/devops/README.md`
|
|
||||||
|
- `devops` - основная функциональность
|
||||||
|
- `user-management` - управление пользователями
|
||||||
|
- `security` - настройки безопасности
|
||||||
|
- `ssh` - SSH конфигурация
|
||||||
|
- `sudo` - настройки sudo
|
||||||
|
|
||||||
|
Пример использования:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Только создание пользователя
|
||||||
|
ansible-playbook -i inventory/hosts.ini roles/deploy.yml --tags devops
|
||||||
|
|
||||||
|
# Только SSH настройка
|
||||||
|
ansible-playbook -i inventory/hosts.ini roles/deploy.yml --tags ssh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Дополнительная информация
|
||||||
|
|
||||||
|
- 📖 Полная документация: `roles/devops/README.md`
|
||||||
- 🧪 Тесты: `roles/devops/tests/test.yml`
|
- 🧪 Тесты: `roles/devops/tests/test.yml`
|
||||||
|
- 📝 Примеры: `roles/devops/examples.yml`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Автор:** Сергей Антропов
|
||||||
|
**Сайт:** https://devops.org.ru
|
||||||
|
|||||||
@@ -1,36 +1,68 @@
|
|||||||
# Быстрый старт - Роль Ping
|
# Быстрый старт - Роль Ping
|
||||||
|
|
||||||
|
**Автор:** Сергей Антропов
|
||||||
|
**Сайт:** https://devops.org.ru
|
||||||
|
**Версия:** 2.0.0
|
||||||
|
|
||||||
## Что делает роль?
|
## Что делает роль?
|
||||||
|
|
||||||
Роль выполняет ping yandex.ru из 5 пакетов и выводит результат.
|
Роль выполняет ping проверки подключения к сети. Отправляет пакеты на указанный хост и выводит результаты.
|
||||||
|
|
||||||
## Основные задачи роли:
|
## Основные задачи роли:
|
||||||
|
|
||||||
1. **Выполнение ping** - отправляет 5 пакетов на yandex.ru
|
1. **Выполнение ping** - отправляет пакеты на указанный хост
|
||||||
2. **Вывод результата** - показывает строки результата ping
|
2. **Вывод результата** - показывает результаты ping
|
||||||
3. **Статистика** - выводит статус и время выполнения
|
3. **Статистика** - выводит статус выполнения
|
||||||
4. **Дополнительная информация** - выводит полный вывод команды
|
4. **Дополнительная информация** - выводит полный вывод команды
|
||||||
|
|
||||||
## Как использовать:
|
## Быстрый запуск
|
||||||
|
|
||||||
### Вариант 1: Использование в roles/deploy.yml (уже добавлено)
|
### Тестирование роли
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Запуск только роли ping
|
# Lint проверка
|
||||||
make role test minimal ping
|
make role lint ping
|
||||||
|
|
||||||
# Запуск всех ролей
|
# Тестирование с minimal preset (1 хост)
|
||||||
make role test minimal
|
make role test minimal
|
||||||
|
|
||||||
|
# Тестирование с default preset (2 хоста)
|
||||||
|
make role test default
|
||||||
|
|
||||||
|
# Тестирование конкретной роли
|
||||||
|
make role test ping
|
||||||
```
|
```
|
||||||
|
|
||||||
### Вариант 2: Использование через roles/ping/playbook.yml
|
### Использование в roles/deploy.yml
|
||||||
|
|
||||||
|
Роль уже добавлена в `roles/deploy.yml` и запускается вместе с остальными ролями:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Запуск напрямую
|
# Запуск всех ролей
|
||||||
|
make role test minimal
|
||||||
|
|
||||||
|
# Запуск только с тегом ping
|
||||||
|
ansible-playbook -i inventory/hosts.ini roles/deploy.yml --tags ping
|
||||||
|
```
|
||||||
|
|
||||||
|
### Отдельное использование
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Прямой запуск playbook роли
|
||||||
ansible-playbook -i inventory/hosts.ini roles/ping/playbook.yml
|
ansible-playbook -i inventory/hosts.ini roles/ping/playbook.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
### Вариант 3: Использование с кастомными параметрами
|
## Переменные
|
||||||
|
|
||||||
|
| Переменная | По умолчанию | Описание |
|
||||||
|
|------------|--------------|----------|
|
||||||
|
| `ping_host` | `yandex.ru` | Целевой хост для ping |
|
||||||
|
| `ping_count` | `5` | Количество пакетов |
|
||||||
|
| `ping_interval` | `1` | Интервал между пакетами (сек) |
|
||||||
|
| `ping_timeout` | `10` | Таймаут (сек) |
|
||||||
|
| `ping_packet_size` | `64` | Размер пакета (байт) |
|
||||||
|
|
||||||
|
### Использование с кастомными параметрами
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Тест ping
|
- name: Тест ping
|
||||||
@@ -40,27 +72,79 @@ ansible-playbook -i inventory/hosts.ini roles/ping/playbook.yml
|
|||||||
vars:
|
vars:
|
||||||
ping_host: google.com
|
ping_host: google.com
|
||||||
ping_count: 10
|
ping_count: 10
|
||||||
|
ping_timeout: 5
|
||||||
```
|
```
|
||||||
|
|
||||||
## Переменные:
|
## Теги
|
||||||
|
|
||||||
- `ping_host` - хост для ping (по умолчанию: yandex.ru)
|
|
||||||
- `ping_count` - количество пакетов (по умолчанию: 5)
|
|
||||||
|
|
||||||
## Теги:
|
|
||||||
|
|
||||||
- `ping` - выполнение всех задач
|
- `ping` - выполнение всех задач
|
||||||
- `test` - тестирование
|
- `test` - тестирование
|
||||||
- `debug` - отладочная информация
|
- `debug` - отладочная информация
|
||||||
- `stats` - статистика
|
- `stats` - статистика
|
||||||
|
|
||||||
## Пример вывода:
|
### Примеры использования тегов
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Только ping задачи
|
||||||
|
ansible-playbook -i inventory/hosts.ini roles/deploy.yml --tags ping
|
||||||
|
|
||||||
|
# Ping + debug
|
||||||
|
ansible-playbook -i inventory/hosts.ini roles/deploy.yml --tags "ping,debug"
|
||||||
|
|
||||||
|
# Только статистика
|
||||||
|
ansible-playbook -i inventory/hosts.ini roles/deploy.yml --tags stats
|
||||||
|
```
|
||||||
|
|
||||||
|
## Пример вывода
|
||||||
|
|
||||||
```
|
```
|
||||||
=========================================
|
=========================================
|
||||||
Результат ping yandex.ru
|
Результат ping yandex.ru
|
||||||
=========================================
|
=========================================
|
||||||
|
PING yandex.ru (87.250.250.242) 64(92) bytes of data.
|
||||||
|
72 bytes from yandex.ru (87.250.250.242): icmp_seq=1 ttl=57 time=5.24 ms
|
||||||
|
72 bytes from yandex.ru (87.250.250.242): icmp_seq=2 ttl=57 time=5.12 ms
|
||||||
|
72 bytes from yandex.ru (87.250.250.242): icmp_seq=3 ttl=57 time=5.08 ms
|
||||||
|
72 bytes from yandex.ru (87.250.250.242): icmp_seq=4 ttl=57 time=5.18 ms
|
||||||
|
72 bytes from yandex.ru (87.250.250.242): icmp_seq=5 ttl=57 time=5.21 ms
|
||||||
|
|
||||||
|
--- yandex.ru ping statistics ---
|
||||||
|
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
|
||||||
|
rtt min/avg/max/mdev = 5.080/5.166/5.240/0.057 ms
|
||||||
|
=========================================
|
||||||
Статус: УСПЕШНО
|
Статус: УСПЕШНО
|
||||||
Время выполнения: 4.234
|
|
||||||
=========================================
|
=========================================
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Проверка результатов
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Проверка через логи Molecule
|
||||||
|
docker logs $(docker ps -aq --filter "network=labnet" | head -1)
|
||||||
|
|
||||||
|
# Вход в контейнер для проверки
|
||||||
|
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) bash
|
||||||
|
|
||||||
|
# Внутри контейнера
|
||||||
|
ping -c 5 yandex.ru
|
||||||
|
```
|
||||||
|
|
||||||
|
## Поддерживаемые ОС
|
||||||
|
|
||||||
|
- ✅ Ubuntu 20.04, 22.04, 24.04
|
||||||
|
- ✅ Debian 9, 10, 11, 12
|
||||||
|
- ✅ CentOS 7, 8, 9
|
||||||
|
- ✅ RHEL 8, 9
|
||||||
|
- ✅ AlmaLinux 8, 9
|
||||||
|
- ✅ Rocky Linux 8, 9
|
||||||
|
|
||||||
|
## Дополнительная информация
|
||||||
|
|
||||||
|
- 📖 Полная документация: `roles/ping/README.md`
|
||||||
|
- 🧪 Тесты: `roles/ping/tests/test.yml`
|
||||||
|
- 📝 Примеры: `roles/ping/examples.yml`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Автор:** Сергей Антропов
|
||||||
|
**Сайт:** https://devops.org.ru
|
||||||
|
|||||||
Reference in New Issue
Block a user