feat: добавлена роль ping для проверки сетевого подключения
- Создана новая роль ping в roles/ping/ - Роль выполняет ping yandex.ru с 5 пакетами - Добавлены задачи: выполнение ping, вывод результатов, статистика - Добавлена документация (README.md, QUICKSTART.md) - Добавлен пример playbook - Роль интегрирована в deploy.yml - Все файлы прошли проверку ansible-lint Автор: Сергей Антропов Сайт: https://devops.org.ru
This commit is contained in:
66
roles/ping/QUICKSTART.md
Normal file
66
roles/ping/QUICKSTART.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# Быстрый старт - Роль Ping
|
||||
|
||||
## Что делает роль?
|
||||
|
||||
Роль выполняет ping yandex.ru из 5 пакетов и выводит результат.
|
||||
|
||||
## Основные задачи роли:
|
||||
|
||||
1. **Выполнение ping** - отправляет 5 пакетов на yandex.ru
|
||||
2. **Вывод результата** - показывает строки результата ping
|
||||
3. **Статистика** - выводит статус и время выполнения
|
||||
4. **Дополнительная информация** - выводит полный вывод команды
|
||||
|
||||
## Как использовать:
|
||||
|
||||
### Вариант 1: Использование в deploy.yml (уже добавлено)
|
||||
|
||||
```bash
|
||||
# Запуск только роли ping
|
||||
make role test minimal ping
|
||||
|
||||
# Запуск всех ролей
|
||||
make role test minimal
|
||||
```
|
||||
|
||||
### Вариант 2: Использование через roles/ping/playbook.yml
|
||||
|
||||
```bash
|
||||
# Запуск напрямую
|
||||
ansible-playbook -i inventory/hosts.ini roles/ping/playbook.yml
|
||||
```
|
||||
|
||||
### Вариант 3: Использование с кастомными параметрами
|
||||
|
||||
```yaml
|
||||
- name: Тест ping
|
||||
hosts: all
|
||||
roles:
|
||||
- role: ping
|
||||
vars:
|
||||
ping_host: google.com
|
||||
ping_count: 10
|
||||
```
|
||||
|
||||
## Переменные:
|
||||
|
||||
- `ping_host` - хост для ping (по умолчанию: yandex.ru)
|
||||
- `ping_count` - количество пакетов (по умолчанию: 5)
|
||||
|
||||
## Теги:
|
||||
|
||||
- `ping` - выполнение всех задач
|
||||
- `test` - тестирование
|
||||
- `debug` - отладочная информация
|
||||
- `stats` - статистика
|
||||
|
||||
## Пример вывода:
|
||||
|
||||
```
|
||||
=========================================
|
||||
Результат ping yandex.ru
|
||||
=========================================
|
||||
Статус: УСПЕШНО
|
||||
Время выполнения: 4.234
|
||||
=========================================
|
||||
```
|
||||
96
roles/ping/README.md
Normal file
96
roles/ping/README.md
Normal file
@@ -0,0 +1,96 @@
|
||||
# Роль Ping
|
||||
|
||||
**Автор:** Сергей Антропов
|
||||
**Сайт:** https://devops.org.ru
|
||||
|
||||
## Описание
|
||||
|
||||
Роль для выполнения ping проверок подключения к сети. Роль отправляет ping пакеты на указанный хост и выводит результаты выполнения.
|
||||
|
||||
## Требования
|
||||
|
||||
- Ansible >= 2.9
|
||||
- Наличие утилиты `ping` на целевых хостах
|
||||
- Привилегии на выполнение ping (обычно не требуются)
|
||||
|
||||
## Переменные
|
||||
|
||||
| Переменная | Тип | По умолчанию | Описание |
|
||||
|------------|-----|--------------|----------|
|
||||
| `ping_host` | string | `yandex.ru` | Целевой хост для ping |
|
||||
| `ping_count` | integer | `5` | Количество пакетов для отправки |
|
||||
| `ping_interval` | integer | `1` | Интервал между пакетами (в секундах) |
|
||||
| `ping_timeout` | integer | `10` | Таймаут (в секундах) |
|
||||
| `ping_packet_size` | integer | `64` | Размер пакета (в байтах) |
|
||||
|
||||
## Примеры использования
|
||||
|
||||
### Базовое использование
|
||||
|
||||
```yaml
|
||||
- name: Выполнить ping проверку
|
||||
hosts: all
|
||||
roles:
|
||||
- ping
|
||||
```
|
||||
|
||||
### С кастомными параметрами
|
||||
|
||||
```yaml
|
||||
- name: Выполнить ping проверку с кастомными параметрами
|
||||
hosts: all
|
||||
roles:
|
||||
- role: ping
|
||||
vars:
|
||||
ping_host: google.com
|
||||
ping_count: 10
|
||||
```
|
||||
|
||||
### В playbook
|
||||
|
||||
```yaml
|
||||
---
|
||||
- name: Тестирование сетевого подключения
|
||||
hosts: servers
|
||||
become: false
|
||||
roles:
|
||||
- role: ping
|
||||
vars:
|
||||
ping_host: 8.8.8.8
|
||||
ping_count: 3
|
||||
tags:
|
||||
- network
|
||||
- test
|
||||
```
|
||||
|
||||
## Tags
|
||||
|
||||
Роль поддерживает следующие теги:
|
||||
|
||||
- `ping` - выполнение всех задач роли
|
||||
- `test` - тестирование подключения
|
||||
- `debug` - вывод отладочной информации
|
||||
- `stats` - вывод статистики
|
||||
|
||||
Пример использования тегов:
|
||||
|
||||
```bash
|
||||
ansible-playbook site.yml --tags "ping,debug"
|
||||
```
|
||||
|
||||
## Поддерживаемые ОС
|
||||
|
||||
- Red Hat Enterprise Linux 7/8/9
|
||||
- CentOS 7/8/Stream
|
||||
- AlmaLinux 8/9
|
||||
- Rocky Linux 8/9
|
||||
- Ubuntu 20.04/22.04
|
||||
- Debian 10/11/12
|
||||
|
||||
## Лицензия
|
||||
|
||||
MIT
|
||||
|
||||
## Автор
|
||||
|
||||
Сергей Антропов - https://devops.org.ru
|
||||
19
roles/ping/defaults/main.yml
Normal file
19
roles/ping/defaults/main.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
# Переменные по умолчанию для роли ping
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
# Целевой хост для ping
|
||||
ping_host: yandex.ru
|
||||
|
||||
# Количество пакетов для отправки
|
||||
ping_count: 5
|
||||
|
||||
# Интервал между пакетами (в секундах)
|
||||
ping_interval: 1
|
||||
|
||||
# Таймаут (в секундах)
|
||||
ping_timeout: 10
|
||||
|
||||
# Размер пакета (в байтах)
|
||||
ping_packet_size: 64
|
||||
7
roles/ping/handlers/main.yml
Normal file
7
roles/ping/handlers/main.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
# Handlers для роли ping
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
# В данный момент handlers не требуются для роли ping (пустой файл для совместимости)
|
||||
[]
|
||||
37
roles/ping/meta/main.yml
Normal file
37
roles/ping/meta/main.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
# Метаданные роли ping
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
galaxy_info:
|
||||
role_name: ping
|
||||
namespace: antropov
|
||||
author: Сергей Антропов
|
||||
description: Роль для выполнения ping проверок подключения к сети
|
||||
company: DevOps.org.ru
|
||||
license: MIT
|
||||
min_ansible_version: "2.9"
|
||||
platforms:
|
||||
- name: EL
|
||||
versions:
|
||||
- "7"
|
||||
- "8"
|
||||
- "9"
|
||||
- "all"
|
||||
- name: Ubuntu
|
||||
versions:
|
||||
- jammy
|
||||
- focal
|
||||
- noble
|
||||
- name: Debian
|
||||
versions:
|
||||
- bullseye
|
||||
- bookworm
|
||||
- trixie
|
||||
galaxy_tags:
|
||||
- networking
|
||||
- ping
|
||||
- connectivity
|
||||
- testing
|
||||
|
||||
dependencies: []
|
||||
16
roles/ping/playbook.yml
Normal file
16
roles/ping/playbook.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
# Пример playbook для роли ping
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
- name: Тестирование ping подключения
|
||||
hosts: all
|
||||
become: false
|
||||
roles:
|
||||
- role: ping
|
||||
vars:
|
||||
ping_host: yandex.ru
|
||||
ping_count: 5
|
||||
tags:
|
||||
- ping
|
||||
- test
|
||||
44
roles/ping/tasks/main.yml
Normal file
44
roles/ping/tasks/main.yml
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
# Основные задачи для роли ping
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
- name: Выполнение ping с пакетами
|
||||
command: ping -c {{ ping_count }} {{ ping_host }}
|
||||
register: ping_result
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
tags:
|
||||
- ping
|
||||
- test
|
||||
|
||||
- name: Вывод результата ping
|
||||
debug:
|
||||
msg: "{{ ping_result.stdout_lines }}"
|
||||
tags:
|
||||
- ping
|
||||
- test
|
||||
- debug
|
||||
|
||||
- name: Статистика ping
|
||||
debug:
|
||||
msg: |
|
||||
=========================================
|
||||
Результат ping {{ ping_host }}
|
||||
=========================================
|
||||
Статус: {{ 'УСПЕШНО' if ping_result.rc == 0 else 'ОШИБКА' }}
|
||||
Код возврата: {{ ping_result.rc }}
|
||||
=========================================
|
||||
tags:
|
||||
- ping
|
||||
- test
|
||||
- stats
|
||||
|
||||
- name: Дополнительная информация о ping
|
||||
debug:
|
||||
var: ping_result.stdout
|
||||
when: ping_result.stdout is defined
|
||||
tags:
|
||||
- ping
|
||||
- test
|
||||
- debug
|
||||
Reference in New Issue
Block a user