简介: Sensu cookbook的资源名为" sensu_check"有两个动作:创建或:删除。在食谱中写入大约200个检查。不同的检查仅适用于相应类型的服务器,即Tomcat,Sonar,Solr等。
当配方运行时,在每个不需要的服务器上配置所有200个检查,因为只应在该类型的服务器上配置适用的检查。
我创建了一个Hash of checks,其中提到了check_name,适用的服务器类型。
编写一个库函数,根据其主机名确定current_check是否适用于当前服务器。
问题:
1)如何检索当前资源名称属性,即" tomcat_service_check"在图书馆功能。资源片段 -
sensu_ckeck "tomcat_service_check" do
command "sh start.sh"
subscriber "tomcat"
...
action :create or :delete (we want to add :ignore with custom provider)
end
2)有没有办法添加另一个自定义动作属性:忽略" sensu_check"资源(社区食谱)与自定义提供商。 如果是,如何告诉厨师在运行时由于忽略条件而未执行当前资源。
答案 0 :(得分:0)
您无法直接访问该数据,但您也不需要。只需在你的食谱中循环:
all_of_the_checks.each do |check_name|
if check_applies_to_host?(node, check_name)
sensu_check check_name do
# Whatever else
end
end
end
对于第2部分,不能直接向现有自定义资源添加新操作。如果它使用非DSL声明方法,你可以将它子类化,但通常你不能。