Как называется режим в Ansible, который проверяет состояние удаленного сервера?

Ответ

В Ansible для проверки состояния узлов без внесения изменений используется режим --check (Dry Run) в сочетании с модулем ping для базовой проверки доступности.

1. Проверка подключения (Ad-Hoc команда):

ansible all -i inventory.ini -m ping
# Успешный ответ: {"ping": "pong"}

2. Пробный запуск плейбука (Dry Run):

ansible-playbook site.yml --check --diff

Этот режим показывает, какие изменения были бы применены, но не выполняет их. Он критически важен для проверки конфигураций на production-серверах.

3. Использование модуля wait_for для проверки конкретных сервисов:

- name: Wait for web server to start on port 8080
  ansible.builtin.wait_for:
    host: "{{ inventory_hostname }}"
    port: 8080
    delay: 5
    timeout: 60

Также для комплексного мониторинга состояния в DevOps-стеке используются внешние системы: Health Checks в оркестраторах (Kubernetes Readiness/Liveness Probes), мониторинг (Prometheus) и алертинг (Alertmanager).

Ответ 18+ 🔞

Да ты посмотри, какая тема интересная! Ну то есть ты хочешь проверить свои сервера, но так, чтобы нихуя им не сломать? Правильно, мужик, подход грамотный. Не лезть в продакшн с шашкой наголо — это святое.

Смотри, в Ансибле для этого есть режим --check, он же сухой прогон. Это как примерить костюм перед свадьбой — посмотреть, как сидит, но не надевать его нахуй в магазине. Идеально, чтобы не накосячить.

1. Самый простой способ — просто пингануть всех. Тыкаешь такую команду, и смотришь, кто живой, а кто уже накрылся медным тазом.

ansible all -i inventory.ini -m ping

Если в ответ прилетело {"ping": "pong"}, то, ёпта, с подключением всё окей. Если тишина — значит, где-то проводки поотваливались или сервер лег.

2. А вот если у тебя целый плейбук, и ты хочешь посмотреть, что он сделал бы, но не делать. Тут уже включаем режим параноика по полной.

ansible-playbook site.yml --check --diff

Эта штука покажет тебе овердохуища полезной инфы: какие файлы бы изменила, какие службы перезапустила, но нихуя не тронет. Волнение ебать, но безопасно. Обязательно гоняй так на проде перед любыми изменениями — доверия ебать ноль ко всем, даже к себе.

3. Ну и бывает, что тебе не просто пинг нужен, а дождаться, когда какой-то сервис поднимется. Например, веб-сервер на порту 8080. Для этого есть модуль wait_for. В плейбуке это выглядит как-то так:

- name: Wait for web server to start on port 8080
  ansible.builtin.wait_for:
    host: "{{ inventory_hostname }}"
    port: 8080
    delay: 5
    timeout: 60

Перевод на русский: «Эй, сервак, я буду тебя ебать каждые 5 секунд, стучаться на 8080-й порт. И буду это делать минуту. Если за минуту не откликнешься — считай, что ты пидарас шерстяной, и пойду искать причину».

Конечно, это всё базовые проверки. В нормальном девопс-стеке за здоровьем сервисов следят уже другие, более навороченные системы. Тот же кубер с его Health Checks (Readiness/Liveness Probes) будет постоянно тыкать палкой в твои поды, прометеус метрики собирать, а алертменеджер — будить тебя ночью, если что-то горит. Но начинается-то всё часто с простого ansible-playbook --check, чтобы самому не стать причиной этого пожара. Умно, чё.