新廚師用戶...如何處理Chef中服務器組的不同模板?
我想推出一個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的內容是什麼,你可以用一些可以配置的變量來標準化嗎?這樣你可以在屬性中定義新的源代碼,迭代它們並擁有一個模板聲明 –
更新我的文章。 – luckytaxi