Ansible playbook: как получить статус сервера вверх или вниз

#ansible

#ansible

Вопрос:

Я разрабатываю панель мониторинга для отображения состояния всех серверов (вверх / вниз), свободной оперативной памяти, версии ядра, типа процессора и т. Д., Используя ansible playbook. Используя gather facts, я могу легко получить все параметры сервера, но не уверен, как получить сервер вверх / вниз с помощью playbook. Если сервер не работает, ansible не может подключиться к серверу, следовательно, модуль «ping» не может использоваться. Пожалуйста, помогите мне. Есть ли какой-нибудь способ получить возвращаемое значение, если playbook не работает на каком-либо сервере?

Порядок подключения ansible таков: 1. Установите ssh-соединение 2. если ssh завершается успешно, соберите факты 3. Выполняйте таксы playbook один за другим. Если ping является задачей внутри playbook, управление даже не попадет в это место, и ansible выдал бы ошибку подключения на самом шаге 1. Пожалуйста, обратитесь ниже https://docs.ansible.com/ansible/2.4/ping_module.html

Также, пожалуйста, обратите внимание, что в моем инвентаре много серверов, и мне нужно получить статус сервера для каждого из них.

Комментарии:

1. Почему бы вам не использовать модуль оболочки, пинговать сервер и регистрировать вывод?

2. If server is down,ansible cannot connect to server hence 'ping' module cannot used. ..что? почему?

3. В документации Ansible говорится, что использование модуля ping в playbookd не имеет никакого смысла docs.ansible.com/ansible/2.4/ping_module.html

Ответ №1:

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

 - hosts: all
  tasks:
    - wait_for: host=192.168.87.100 port=80 timeout=1
    - debug: msg=ok