feat: Добавлена роль Python 3.12 и восстановлена роль Docker

- Создана универсальная роль Python для установки Python 3.12 на всех ОС
- Восстановлена роль Docker из git истории
- Исправлены все ошибки линтера
- Обновлен deploy.yml с правильным порядком ролей: devops → python → docker
- Удалена устаревшая роль ping
- Добавлена поддержка альтернативных репозиториев для старых ОС

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
Сергей Антропов
2025-10-27 22:08:37 +03:00
parent 1b6db7445d
commit 0b4efd9ca1
19 changed files with 1511 additions and 393 deletions

View File

@@ -1,150 +0,0 @@
# Быстрый старт - Роль Ping
**Автор:** Сергей Антропов
**Сайт:** https://devops.org.ru
**Версия:** 3.0.0
## Что делает роль?
Роль выполняет ping проверки подключения к сети. Отправляет пакеты на указанный хост и выводит результаты.
## Основные задачи роли:
1. **Выполнение ping** - отправляет пакеты на указанный хост
2. **Вывод результата** - показывает результаты ping
3. **Статистика** - выводит статус выполнения
4. **Дополнительная информация** - выводит полный вывод команды
## Быстрый запуск
### Тестирование роли
```bash
# Lint проверка
make role lint ping
# Тестирование с minimal preset (1 хост)
make role test minimal
# Тестирование с default preset (2 хоста)
make role test default
# Тестирование конкретной роли
make role test ping
```
### Использование в roles/deploy.yml
Роль уже добавлена в `roles/deploy.yml` и запускается вместе с остальными ролями:
```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
```
## Переменные
| Переменная | По умолчанию | Описание |
|------------|--------------|----------|
| `ping_host` | `yandex.ru` | Целевой хост для ping |
| `ping_count` | `5` | Количество пакетов |
| `ping_interval` | `1` | Интервал между пакетами (сек) |
| `ping_timeout` | `10` | Таймаут (сек) |
| `ping_packet_size` | `64` | Размер пакета (байт) |
### Использование с кастомными параметрами
```yaml
- name: Тест ping
hosts: all
roles:
- role: ping
vars:
ping_host: google.com
ping_count: 10
ping_timeout: 5
```
## Теги
- `ping` - выполнение всех задач
- `test` - тестирование
- `debug` - отладочная информация
- `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 (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
=========================================
Статус: УСПЕШНО
=========================================
```
## Проверка результатов
```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