从Puppet中的Ruby自定义类型获取模块文件的内容

时间:2014-09-25 12:00:58

标签: ruby file-io puppet

我目前正在为Puppet编写Ruby自定义类型,我必须加载文件的内容,该文件位于'文件中的同一模块中。夹。是否有可从提供商访问的功能可以为我提供"puppet:///modules/my_module/test.yaml"所解决的文件的内容?

3 个答案:

答案 0 :(得分:1)

我找到了让它运转的方法......这是一个合适的解决方案吗?

file = Puppet::Parser::Files.find_file("my_module/my_file",
                Puppet::Module.find('my_module').environment)
File.open('/tmp/test', 'w') { |f| f.write(File.read(file)) }

答案 1 :(得分:0)

不,我认为没有。

模块的清单应该通过file资源将文件复制到代理,以便提供者可以从已知位置使用它。

答案 2 :(得分:0)

在服务器上运行的函数,代理中的类型。如果使用标准Ruby代码创建一个在服务器上返回文件内容的函数,则可以使用该函数在类型中注入值。

虽然有一些caveats关于你可以用功能做什么。