Icinga2 API:如何将主机的所有服务设置为停机时间?

时间:2019-06-25 21:15:51

标签: api ansible icinga2

我正在尝试自动设置和消除icinga主机上的停机时间。

我当前正在使用以下命令:

(请注意,我正在ansible剧本中运行此命令,因此{{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并将主机置于停机状态而没有选中“所有服务”复选框一样。

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

如果有一个可以完成此功能的烦人的任务,我也很感兴趣。

1 个答案:

答案 0 :(得分:0)

答案是将网址末尾的&type=Host位更改为&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}}\" }"