我正在为Puppet编写自定义类型,并使用以下代码将puppet url指定的模块文件复制到用户的主目录:
def generate
if self[:source]
uri = URI.parse(self[:source])
path = File.join(Etc.getpwnam(self[:user])[:dir], File.basename(uri.path))
file_opts = {}
file_opts[:name] = File.join(Etc.getpwnam(self[:user])[:dir], File.basename(uri.path))
file_opts[:ensure] = self[:ensure] == :absent ? :absent : :file
file_opts[:source] = self[:source]
file_opts[:owner] = self[:user]
self[:source] = path
Puppet::Type.type(:file).new(file_opts)
end
end
到目前为止,情况正常。资源将添加到目录并在代理端创建。但我有一个问题......
如何指定在执行实际类型之前必须创建此附加文件资源? Unfortunatley,我找不到一个示例,说明如何指定对generate
方法中定义的可选资源的依赖。