【发布时间】:2017-06-21 23:51:30
【问题描述】:
新厨师用户...
我想推出 Sumologic 安装的配置文件。我有一个为/var/log/messages. 收集日志的基本配方。这个配置文件(它实际上是一个模板)发送到所有服务器。我还有一个配置文件,它应该只用于让我们说一个网络服务器收集/var/log/httpd/access.log.
我是否应该创建另一个配方文件(您就是这么称呼它们的)?这就是我现在所拥有的。
食谱
# cookbooks/ic_sumologic/recipes/config.rb
directory '/opt/SumoCollector/sources' do
owner 'root'
group 'sumologic_collector'
mode '0775'
action :create
end
# This should go to all servers
template '/opt/SumoCollector/sources/messages.json' do
source 'messages.json.erb'
owner 'root'
group 'sumologic_collector'
mode '0664'
action :create
end
# This should only go to Apache servers
template '/opt/SumoCollector/sources/access_logs.json' do
source 'access_logs.json.erb'
owner 'root'
group 'sumologic_collector'
mode '0664'
action :create
end
模板
# messages.json.erb
{
api.version:v1,
source:{
name:messages,
"category":"<%= node.chef_environment %>_messages",
automaticDateParsing:true,
multilineProcessingEnabled:true,
useAutolineMatching:true,
forceTimeZone:false,
filters:[],
encoding:UTF-8,
pathExpression:/var/log/messages,
blacklist:[],
sourceType:LocalFile
}
}
# access_logs.json.erb
{
api.version:v1,
source:{
name:messages,
"category":"<%= node.chef_environment %>_access",
automaticDateParsing:true,
multilineProcessingEnabled:true,
useAutolineMatching:true,
forceTimeZone:false,
filters:[],
encoding:UTF-8,
pathExpression:/var/log/httpd/access,
blacklist:[],
sourceType:LocalFile
}
}
【问题讨论】:
-
也许您可以使其更具可配置性,这样您就不必在需要新源时声明新的模板资源。 erbs的内容是什么,你能用一些可以配置的变量使它成为标准吗?这样你就可以在属性中定义新的源,迭代它们并拥有一个模板声明
-
更新了我的帖子。