0
我試圖創建一個動態創建的Splunk索引器(與數據端口附加到每個主機名稱)的動態創建逗號分隔列表從提供返回列表主機到模板和相應的erb。廚師從模板和刀子搜索創建逗號分隔的字符串
但是,conf文件中的字符串永遠不會被創建,儘管當我收斂到我的測試Docker實例時沒有引發任何錯誤。
這裏的刀查詢,它引用的屬性,以及模板資源
attribute file entry:
default['forwarder']['indexer_role'] = 'splunk_indexer'
knife query and template resource:
indexers = search(:node, "role:#{node['forwarder']['indexer_role']}")
template '/opt/splunkforwarder/etc/system/local/outputs.conf' do
source "system_local_outputs.erb"
owner 'nobody'
group 'nobody'
mode 0600
action :create
variables(
:indexers => indexers
)
end
這是該模板資源
[tcpout]
defaultGroup = default-autolb-group
[tcpout:default-autolb-group]
disabled = false
<% @indexers.each do |member| %>
server = <%= member[ :hostname] + ":5501," %>
<% end %>
我不知道,如果相應的ERB文件查詢被錯誤地指定,或者模板資源是否錯誤,或者如果我在erb代碼中犯了錯誤。
正如我上面提到的,沒有錯誤拋出,代碼編譯和收斂沒有任何錯誤消息。這條線根本就不在那裏。
謝謝,你對erb沒有做出逗號分開列表是正確的。 我檢查了查詢和'刀搜索'角色:splunk_indexer''確實工作正常。 我應該澄清該行的一部分存在「server =」,但該行不包含新行,因此我很早就錯過了。仍然查詢似乎沒有工作。 – user3481957
我忘了提及我在試廚房運行這個。所以我意識到,測試廚房不查詢服務器,這就是爲什麼查詢不返回任何東西。所以我接受了你的回答,因爲這讓我意識到了這一點。謝謝您的幫助。 – user3481957