我使用的是Apache Nifi,我正在編寫一個tool以基於Nifi API自動化。這個工具是一個紅寶石寶石,所以我想用它作爲我的Nifi manifest中的傀儡類型/提供者。鏈接提供商
類型(LIB /木偶/類型/ nifi_pg.rb)看起來像這樣:
Puppet::Type.newtype(:nifi_pg) do
@doc = "Manage Nifi process groups"
ensurable
newparam(:name) do
isnamevar
desc "Process group Name"
validate do |value|
end
end
newparam(:id) do
desc "Process group ID"
validate do |value|
end
end
end
提供商(LIB /木偶/提供者/ nifi_pg/ruby.rb)看起來像這樣:
require 'nifi_sdk_ruby'
Puppet::Type.type(:nifi_pg).provide(:ruby) do
def create
nifi_client = Nifi.new()
nifi_client.set_debug(true)
nifi_client.create_process_group(:name => resource[:name])
end
def destroy
nifi_client = Nifi.new()
nifi_client.set_debug(true)
nifi_client.delete_process_group(resource[:id])
end
def exists?
false
end
end
使用它很簡單:
nifi_pg {"test":
ensure => present
}
問題是我需要關於創建資源的一些信息(如新進程組標識)來使用它,例如,將模板上傳到此新進程組。木偶資源不會返回任何東西。
任何想法解決?我想答案不是。
這個explanation完美地解釋它。
關閉我的頭頂,這是不可能的,因爲事實和函數在編譯時執行,並且您需要一個或兩個來解決此問題。但是,您是否可以編輯此理論模板的問題,以瞭解資源和模板的外觀?這種情況可能有解決方法。 –
或者,這是否需要在節點上執行?如果不是的話,那裏也有前進的道路。 –