# Быстрый старт - Роль 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