我是厨师新手,我正在尝试设置一个包装食谱来管理logstash。我正在包装的食谱使用 LWRP。
如何使用 LWRP 管理配置文件?
这是我到目前为止的包装食谱
食谱/default.rb
include_recipe 'apt::default'
include_recipe 'java::default'
include_recipe 'logstash::server'
属性/default.rb
default['logstash']['instance_default']['elasticsearch_cluster'] = 'example-elasticsearch'
default['logstash']['instance_default']['elasticsearch_ip'] = 'elasticsearch01.example.com'
default['logstash']['instance_default']['elasticsearch_port'] = '9200'
default['logstash']['instance_default']['elasticsearch_embedded'] = false
伯克斯文件
source "https://supermarket.chef.io"
metadata
cookbook 'logstash', git: 'https://github.com/lusis/chef-logstash.git'
根据文档,在 .kitchen.yml 中有一个使用 LWRP 的示例,但我不确定如何使用它。
我在哪里放置 LWRP 定义?
包装食谱中的 LWRP 是什么样的?
更新
这是我尝试过的:
在recipe/default.rb
我添加了以下内容
include_recipe 'apt::default'
include_recipe 'java::default'
include_recipe 'logstash::server'
logstash_config 'config/foobar_output_elasticsearch.conf.erb' do
action [:create]
notifies :restart, "logstash_service[#{name}]"
end
然后在里面templates/default/config/foobar_output_elasticsearch.conf.erb
我有以下
foobar
然而,当我运行厨房收敛时,文件未创建
更新2
根据 irc 频道中的 cheeseplus ,您应该能够像这样使用 LWRP:
default['logstash']['instance_default']['config_templates_cookbook'] = 'config/foobar_output_elasticsearch.conf.erb'
https://github.com/lusis/chef-logstash/issues/367
不幸的是,它不起作用。
更新3
我也尝试在我的 default.rb 中设置属性,如下所示:
default['logstash']['instance_default']['config_templates_cookbook'] = 'My-Wrapper-Cookobook'
default['logstash']['instance_default']['config_templates']['foobar'] = 'config/foobar_output_elasticsearch.conf.erb'
更新4
我也尝试过直接在资源中设置参数,但没有成功。
logstash_config 'foobar' do
templates_cookbook 'MY-Wrapper-Cookbook'
templates 'config/foobar_output_elasticsearch.conf.erb'
action [:create]
notifies :restart, "logstash_service[#{name}]"
end
更新5
看这个例子,我也尝试了下面的语法。
default['logstash']['instance_default']['config_templates'] = {
'input_redis' => 'config/input_redis.conf.erb',
'filter_syslog' => 'config/filter_syslog.conf.erb',
'output_elasticsearch' => 'config/output_elasticsearch.conf.erb',
'foobar' => 'config/foobar_output_elasticsearch.conf.erb'
}