Для виконання автоматизованого завдання на віддаленому хості за допомогою Ansible необхідно заповнити певні змінні та працювати з ними, як і слід було очікувати. Наприклад, такий тип завдань необхідний для встановлення віддаленого хосту в Інтернеті, дозволу входу та прав користувача та налаштування середовища Python.
Можна SSH перенести на віддалений хост і перевірити, чи відповідає хост усім критеріям. Однак, як інструмент автоматизації, Ansible пропонує модулі, які дозволяють виконувати ці нудні, трудомісткі завдання в одному рядку команди.
Цей підручник показує, як використовувати вбудований модуль пінгу Ansible для виконання різних наборів змінних на віддалених хостах. Запит ping Ansible - це простий, але корисний інструмент, який можна використовувати для перевірки доступності та практичності віддалених хостів.
Зараз ми детальніше розглянемо, як працює пісень Ansible.
ПРИМІТКА: Цей розділ є дещо теоретичним. Якщо вам потрібна лише технічна частина статті, ви можете пропустити цей розділ. Незважаючи на це, ми рекомендуємо прочитати цей розділ, оскільки він надає деяку корисну інформацію та інформацію про модуль ping.
З урахуванням зазначеного, тепер ми перейдемо до введення модуля ping.
Про модуль Ansible ping
Запит пінгу Ansible перевіряється на віддаленому хості. Цей модуль спеціально перевіряє наявність:
- Чи доступний віддалений хост.
- Чи може середовище Python успішно запускати необхідні книги для ігор.
- Логін користувача та привілеї.
Після того, як запит пінгу відправляється на віддалений хост, модуль повертає значення, що вказує, чи пінг був успішним. За замовчуванням модуль ping повертає рядок "pong" при успіху та виняток при відмові (якщо вказано).
ПРО ПІДКАЗКА: Щоб переконатись, що ваші плейбуки Ansible на цільових віддалених хостах не вийшли з ладу, використовуйте модуль ping, щоб перевірити, чи виконуються вимоги, і виконуйте завдання, лише якщо отримано успішний результат.
Особливості модуля Ansible ping
Модуль ping досить простий, і нижче наведено перелік функцій, наданих цим модулем:
- Не пінг ICMP; швидше, це невеликий модуль, який вимагає дійсного середовища Python на віддалених хостах.
- Віддаленим хостам Windows слід замість цього використовувати модуль win_ping.
- Надає модуль net_ping для мережевих пристроїв.
- Приймає лише один параметр, щоб викликати виняток.
- За замовчуванням використовується під час виклику команди ansible в каталозі / usr / bin / ansible для перевірки дозволів на вхід та дійсного середовища Python.
- Повертає рядок "понг" про успіх.
Як користуватися модулем Ansible ping
Зараз ми розглянемо кілька прикладів, які використовують модуль пінгу Ansible.
Використання команди пінгу AD HOC
Найпростіший спосіб запустити модуль пінгу Ansible - це запустити в терміналі просту команду AD HOC.
Команда AD HOC має такий вигляд:
ansible все -m ping -vВищевказана команда починається із виклику Ansible, після чого слід конкретний шаблон хосту. У цьому випадку ми хочемо перевірити "всіх" хостів. Наступна частина, '-m,' визначає модуль, який ми хочемо використовувати. '-V' означає багатослівник.
У разі успіху ви отримаєте результат, як показано нижче:
Використання / etc / ansible / ansible.cfg як конфігураційний файл 35.222.210.12| УСПІХ =>
"ansible_facts":
"виявлений_інтерпретер_питон": "/ usr / bin / python",
"змінено": false,
"пінг Понг"
Якщо віддалені хости недоступні (можливо, вони перебувають у режимі офлайн), ви отримаєте результат, такий як показано нижче:
Використання / etc / ansible / ansible.cfg як конфігураційний файл 35.222.210.12| НЕДОСТУПНИЙ! =>
"змінено": false,
"msg": "Помилка підключення до хосту через ssh: ssh: підключення до хосту 35.222.210.12 порт 22: Час очікування підключення ",
"недосяжний": правда
Використання модуля ping у Playbooks
Ви також можете використовувати модуль ping всередині ігрової книги. У більшості випадків ви не будете створювати ігрову книгу, яка виконує лише запит пінгу. Однак ви можете обернути всі завдання всередині умов запиту ping.
Розглянемо наступний простий посібник:
- господарі: всістати: так
завдання:
- пінг
Ви можете помітити, що у наведеному вище посібнику я включив директиву 'стань'. Це не є вимогою, але я стикався з випадками, коли модуль ping виходить з ладу для звичайного користувача. Тепер ви можете запустити книгу і перевірити, чи відповідає хост-сервер вимогам для успішної відповіді "pong".
ansible-playbook ping.ymlЯкщо пінг не вдався, ви отримаєте таку помилку "недосяжний":
фатальний: [35.222.210.12]: НЕДОСТУПНИЙ! => "змінено": false, "msg": "Помилка підключення до хосту через ssh: ssh: підключення до хосту 35.222.210.12 порт 22: Час очікування підключення "," недосяжний ": trueВикористання підняття винятків з модулем ping
Ви також можете вказати дані як збій, щоб викликати виняток. Це змінює повернення за замовчуванням з "pong" на "аварійне завершення роботи".'
Розглянемо наступний посібник:
- господарі: всістати: так
завдання:
- пінг:
аварія: дані
Запуск книги з винятками повинен повернути таке значення:
ansible-playbook ping_except.yml
Висновок
Цей посібник показав вам різноманітну корисність модуля ping. Хоча цей модуль не містить складних параметрів, як більшість модулів Ansible, він все одно містить потужні можливості. Наприклад, ви можете використовувати модуль ping, щоб перевірити, чи помилка пов’язана з відсутнім середовищем Python, і створити завдання для встановлення необхідного середовища на віддаленому хості.