0

我正在尝试自动设置和删除 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}}\" }"

这能够使主机进入停机时间。但是,它不会将该主机上的任何服务置于停机时间。这就像我进入 web ui 并在没有选择“所有服务”复选框的情况下将主机置于停机状态。

如何更改此命令以使主机停机,同时将该主机上的所有服务也停机?

如果有一个ansible任务也可以执行此功能,我也会感兴趣。

4

1 回答 1

1

答案是更改&type=Hosturl 末尾的位&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}}\" }"
于 2019-06-25T22:34:35.013 回答