Icinga2 API: как перевести все сервисы хоста в простои? - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь автоматизировать настройку и удаление простоев на хостах icinga.

В настоящее время я использую следующую команду:

(обратите внимание, что я запускаю это в ANSIBLE playbook, поэтому {{item}} - это имя хоста, а любые другие двойные скобки заполняются ANSIBLE переменными)

curl -k -s -u {{username}}:{{password}} -H 'Accept: application/json' -X POST "https://localhost:5665/v1/actions/schedule-downtime?filter=host.name==%22{{item}}%22&type=Host" -d "{ \"start_time\": \"{{now}}\", \"end_time\": \"{{end}}\", \"duration\": 1000, \"author\": \"{{username}}\", \"comment\": \"auto set downtime on {{item}}\" }"

Это может привести к простоям хоста. Однако, это не помещает никакие сервисы на этом хосте в это время простоя. Это как если бы я зашел в веб-интерфейс и перевел хост в нерабочее время, не устанавливая флажок «все сервисы».

Как изменить эту команду, чтобы перевести хост в нерабочее время, а также перевести все службы на этом хосте в нерабочее время?

Мне также было бы интересно, если бы было задание, которое могло бы также выполнить эту функцию.

1 Ответ

0 голосов
/ 26 июня 2019

Ответ состоит в том, чтобы изменить бит &type=Host в конце URL-адреса на &type=Service для простоя обслуживания вместо простоя хоста.

curl -k -s -u {{username}}:{{password}} -H 'Accept: application/json' -X POST "https://localhost:5665/v1/actions/schedule-downtime?filter=host.name==%22{{item}}%22&type=Service" -d "{ \"start_time\": \"{{now}}\", \"end_time\": \"{{end}}\", \"duration\": 1000, \"author\": \"{{username}}\", \"comment\": \"auto set downtime on {{item}}\" }"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...