从模块外部获取Puppet文件

Ben*_*tin 7 puppet vagrant

我正在从一个模块安装一个软件包(Nginx在这种特定情况下),并希望包含一个来自模块外部的配置文件,即从顶级files目录并行到顶级manifests目录.我没有看到任何方式来源文件虽然没有包含在模块或我当前的Vagrant环境中引用绝对本地路径.

Puppet是否允许如文档中所述从模块外部获取文件?

dak*_*aks 3

如果我正确理解你的问题,你可以。在你的模块中有这样的简单代码

file { '/path/to/file':
    ensure => present,
    source => [
               "puppet:///files/${fqdn}/path/to/file",
               "puppet:///files/${hostgroup}/path/to/file",
               "puppet:///files/${domain}/path/to/file",
               "puppet:///files/global/path/to/file",
    ],
}
Run Code Online (Sandbox Code Playgroud)

会做这项工作。/ path /to/file将使用位于“files”Puppet 共享中的文件来获取。(在上面的示例中,它在 4 个不同的位置进行搜索)。

更新也许您正在谈论一个存储 Puppet 文件服务器未共享的文件的目录(请参阅http://docs.puppetlabs.com/guides/file_serving.html),在这种情况下,我认为您不能,无论是否 Vagrant,但您可以将其添加到您的 Puppet 文件服务器中来执行此操作。我认为这是最好的(也许也是唯一的)方法。