我可能对正确的用法感到困惑。
我已经使用 Hiera 设置了我的发货人的配置:
classes:
- os::repo
- profiles::logstash::shipper
logstash::configfile:
'input_file':
content: '/etc/puppet/modules/profiles/manifests/logstash/templates/input_file.erb'
order: '10'
我的配置文件::logstash::shipper 设置如下:
class profiles::logstash::shipper() {
class { 'logstash':
ensure => 'present',
version => '1.4.1-1_bd507eb',
status => 'enabled',
}
include logstash
}
输入文件.erb:
input {
file {
type => "syslog"
path => ["/var/log/secure", "/var/log/messages", "/var/log/syslog"]
exclude => ["*.gz", "shipper.log"]
sincedb_path => "/var/run/logstash/lssincedbs"
}
file {
type => "logfile"
path => ["/tmp/*.log"]
sincedb_path => "/var/run/logstash/lssincedbs"
}
}
(我知道从技术上来说这不是一个 erb,但最终它会成为)
每次傀儡代理运行目录时,它都会在作为托运人的代理上产生一个空的logstash.conf
输入。/etc/logstash/conf.d
我做错了什么?我可能感到困惑,因为我不理解 github 文档中的某些内容。
答案1
请注意,此 hiera 值
logstash::configfile:
'input_file':
content: '/etc/puppet/modules/profiles/manifests/logstash/templates/input_file.erb'
order: '10'
做不是隐式创建此资源
logstash::configfile { 'input_file': content => '...', order => 10 }
它会如果你将此调用添加到清单中,请执行此操作
create_resources('logstash::configfile', hiera('logstash::configfile'))
但
- 这将是 hiera 中一个相当混乱的命名方案,更重要的是
- 它不会只工作一次做想要 Puppet 使用 ERB 代码解释你的模板
如果可以的话,将配置文件从 Hiera 移动到您的清单中。