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

- roles/ping/QUICKSTART.md - обновлены команды Makefile, добавлены новые возможности
- roles/devops/QUICKSTART.md - обновлены команды, добавлена версия 2.0.0
- Добавлены примеры проверки результатов в контейнерах
- Обновлены примеры использования с актуальными командами
- Добавлены разделы про теги и дополнительные возможности

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
Сергей Антропов
2025-10-26 01:27:42 +03:00
parent 4e380971a6
commit 8be79a21ee
2 changed files with 231 additions and 42 deletions

View File

@@ -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

View File

@@ -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