Поиск по сайту:

Неподражаемое как раз и вызывает большинство подражателей (Мария Эшенбах).

Как использовать модуль Ping в Ansible

4 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
8 апреля 2021
Как использовать модуль Ping в Ansible
Чтобы выполнить автоматизированную задачу на удаленном хосте с помощью Ansible, необходимо заполнить определенные переменные и работать с ними, как и следовало ожидать. Например, этот тип задачи необходим для подключения удаленного хоста, разрешения входа в систему и пользовательских привилегий, а также для настройки среды Python.

Можно подключиться к удаленному хосту по SSH и проверить, соответствует ли хост всем критериям. Однако в качестве инструмента автоматизации Ansible предоставляет модули, которые позволяют выполнять эти утомительные, трудоемкие задачи в одной строке команды.

В этой показано, как использовать встроенный в Ansible модуль ping для выполнения различных заданных переменных на удаленных узлах. Запрос Ansible ping – это простой, но полезный инструмент, который вы можете использовать для проверки доступности и практичности удаленных хостов.

Теперь мы подробнее рассмотрим, как работает Ansible ping.

Примечание
Этот раздел носит теоретический характер. Если все, что вам нужно, это техническая часть статьи, то вы можете пропустить этот раздел. Тем не менее, мы рекомендуем прочитать этот раздел, так как он дает некоторые полезные сведения и информацию о модуле ping.

С учетом этого мы перейдем к представлению модуля ping.

 

О модуле Ansible ping

Запрос Ansible ping проверяется на удаленном хосте. Этот модуль специально проверяет:

  • Включен ли удаленный хост и доступен ли он.
  • Может ли среда Python успешно запускать необходимые пьесы.
  • Логин и привилегии пользователя.

После отправки запроса ping на удаленный хост модуль возвращает значение, указывающее, был ли ping успешным. По умолчанию модуль ping возвращает строку «pong» в случае успеха и исключение в случае неудачи (если указано).

СОВЕТ ОТ ПРОФЕССИОНАЛА
Чтобы убедиться, что ваши сценарии воспроизведения Ansible на целевых удаленных хостах не дают сбоев, используйте модуль ping, чтобы проверить, выполняются ли требования, и выполняйте задачи только в том случае, если получен успешный результат.

 

Особенности модуля Ansible ping

Модуль ping довольно прост, и ниже приводится список функций, предоставляемых этим модулем:

  • Не пингуется ICMP; скорее, это небольшой модуль, для которого требуется действующая среда Python на удаленных хостах.
  • Вместо этого удаленные хосты Windows должны использовать модуль win_ping.
  • Предоставляет модуль net_ping для сетевых устройств.
  • Принимает только один параметр для создания исключения.
  • Используется по умолчанию при вызове команды ansible в каталоге /usr/bin/ansible для проверки разрешений на вход и допустимой среды Python.
  • В случае успеха возвращает строку pong.
Читать  Как удалить все строки файла в Vim

 

Как использовать модуль Ansible ping

Теперь мы рассмотрим несколько примеров, в которых используется модуль Ansible ping.

 

Использование команды ping AD HOC

Самый простой способ запустить модуль ping в Ansible – запустить простую команду AD HOC в терминале.

Команда AD HOC выглядит следующим образом:

ansible all -m ping -v

 

Приведенная выше команда начинается с вызова Ansible, за которым следует конкретный шаблон хоста. В этом случае мы хотим пинговать «all» хосты. Следующая часть, «-m», определяет модуль, который мы хотим использовать. ‘-V’ означает подробный.

В случае успеха вы получите результат, подобный показанному ниже:

Использование /etc/ansible/ansible.cfg в конфигурационном файле 35.222.210.12

Using /etc/ansible/ansible.cfg as config file 35.222.210.12

| SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"     },
"changed": false,
"ping": "pong"
}

 

Если удаленные хосты недоступны (возможно, они отключены), вы получите результат, подобный показанному ниже:

 Использование /etc/ansible/ansible.cfg в конфигурационном файле 35.222.210.12

Using /etc/ansible/ansible.cfg as config file 35.222.210.12

| UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: connect to host 35.222.210.12 port 22: Connection timed out",
"unreachable": true
}

Использование модуля ping в Playbooks

Вы также можете использовать модуль ping внутри playbook. В большинстве случаев вы не создадите playbook, который выполняет только ping-запрос. Однако вы можете заключить все задачи в условия запроса ping.

Рассмотрим следующий простой сценарий:

- hosts: all

become: yes

tasks:
- ping

 

Вы можете заметить, что в приведенном выше сценарии мы включили директиву «become». Это не является обязательным требованием, но мы встречали случаи, когда модуль ping не работал для стандартного пользователя. Теперь вы можете запустить playbook и проверить, соответствует ли хост-сервер требованиям для успешного ответа «pong».

ansible-playbook ping.yml

 

Если проверка связи не удалась, вы получите следующую ошибку «unreachable»:

fatal: [35.222.210.12]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 35.222.210.12 port 22: Connection timed out", "unreachable": true}

Использование исключения повышения с модулем ping

Вы также можете указать данные как сбой, чтобы вызвать исключение. Это изменяет возврат по умолчанию с «pong» на «crash».

Рассмотрим следующий сценарий:

- hosts: all

become: yes

tasks:
- ping:
crash: data

 

Читать  Exa - Современная замена команды ls

Запуск playbook с исключением должен вернуть следующее значение:

ansible-playbook ping_except.yml

Заключение

Эта статья продемонстрировало вам разнообразные возможности модуля ping. Хотя этот модуль не содержит сложных параметров, как большинство модулей Ansible, он все же содержит мощные возможности. Например, вы можете использовать модуль ping, чтобы проверить, не вызвана ли ошибка отсутствующей средой Python, и создать задачу для установки требуемой среды на удаленном хосте.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Поделиться в соц. сетях:
0 0 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close