我試圖創建一個新的自定義類型/提供程序,但不能保證。自定義類型/提供程序不可接受
我已經檢查過exec和augeas類型,但我無法清楚地弄清楚,當我們沒有定義可保證模式時,類型和提供程序之間的集成是如何工作的。
類型:
Puppet::Type.newtype(:ptemplates) do
newparam(:name) do
desc ""
isnamevar
end
newproperty(:run) do
defaultto 'now'
# Actually execute the command.
def sync
provider.run
end
end
end
提供者:
require 'logger'
Puppet::Type.type(:ptemplates).provide(:ptemplates) do
desc ""
def run
log = Logger.new(STDOUT)
log.level = Logger::INFO
log.info("x.....................................")
end
但我不知道爲什麼正在執行的供應商兩次
[email protected]:/# puppet apply -e "ptemplates { '/tmp': }" --environment=production
Notice: Compiled catalog for puppet.localhost in environment production in 0.12 seconds
I, [2017-07-30T11:00:15.827103 #800] INFO -- : x.....................................
I, [2017-07-30T11:00:15.827492 #800] INFO -- : x.....................................
Notice: /Stage[main]/Main/Ptemplates[/tmp]/run: run changed 'true' to 'now'
Notice: Applied catalog in 4.84 seconds
而且,我有來定義defaultto強制執行provider.run方法。
我錯過了什麼?
最好的問候。
爲什麼不使用普通的方法來強制執行,如將冪等設置爲false或使用'exists/creates''? –
爲什麼你認爲(而不是)「可接受」與你的問題有什麼關係? –