我有一个主机组 A,使用其服务模板中的指令为其定义了多项服务hostgroup_name
。在其他几个主机组中,主机也是主机组 A 的成员,其中有一个主机组我想覆盖它从主机组 A 隐式继承的一项服务。这可能吗?
我尝试使用相同的服务描述为该特定主机组定义服务,但没有效果。
我还尝试从我提到的服务模板中排除主机组,但没有成功。我想要覆盖服务的主机组是在服务模板之后定义的,因此!hostgroup-b
无法扩展。
有没有简单的解决方案,或者我应该重新组织我的配置?
例子:
# hostgroup-a.cfg
# hostgroup A
define hostgroup {
hostgroup_name hostgroup-a
}
define host {
name host-a
register 0
use linux-server
hostgroups hostgroup-a
}
# service template for services for hostgroup A
define service {
name hostgroup-a-service
register 0
use generic-service
hostgroup_name hostgroup-a
}
# PING example service
define service {
use hostgroup-a-service
service_description PING
check_command check-host-alive
}
对于以下主机组,我想删除或覆盖PING
从隐式继承的服务hostgroup-a
。
# hostgroup-b.cfg
# hostgroup b
define hostgroup {
hostgroup_name hostgroup-b
}
define host {
name host-b
use host-a
register 0
hostgroups +hostgroup-b
}
答案1
我认为我的配置太复杂了,所以我删除了我想要覆盖的隐式继承的服务,并为每个主机组单独定义它们以降低复杂性。这样更容易维护。