Puppet资源应该放在哪里?

时间:2016-02-15 17:03:32

标签: windows puppet flyway

我有以下flyway.pp Puppet类,它将Flyway安装到Windows机器上。它将两个文件复制到安装文件夹中。

class rehan::flyway {
    package { 'flyway':
        ensure      => latest,
        provider    => chocolatey
    }

    file { 'C:/Program Files/flyway/ntlmauth.dll':
      ensure => 'file',
      source => 'puppet:///modules/rehan/manifests/ntlmauth.dll',
    }

    file { 'C:/Program Files/flyway/drivers/sqljdbc4.jar':
      ensure => 'file',
      source => 'puppet:///modules/rehan/manifests/sqljdbc4.jar',
    }
}

上述模块位于modules/rehan/manifests/flyway.pp。我已将两个文件ntlmauth.dllsqljdbc4.jar放在一边但看起来有点混乱。是否存在通常放置这些文件的标准目录或位置?另外,我如何使用相对路径引用这些文件,我使用puppet:///modules/rehan/manifests/ntlmauth.dll,因为我已经在某个地方看到了它,但这不起作用。

2 个答案:

答案 0 :(得分:1)

这可能有点令人困惑。

在你模块的目录中,你应该有一个名为'files'的子目录,你想要在那里复制/安装的所有文件都需要放在那里。

令人困惑的是,在处理存储在那里的其中一个对象时,你 提及路径中的'文件'!

所以,

source => 'puppet:///modules/rehan/sqljdbc4.jar'

从以下路径中选取jar文件:

/etc/puppet/modules/rehan/files/sqljdbc4.jar

答案 1 :(得分:1)

puppet:///modules/rehan/manifests/ntlmauth.dll不起作用的原因是它将路径映射到/ etc / puppet / modules / rehan / 文件 /清单/ntlmauth.dll不存在。

您无法使用puppet:///

引用位于清单目录中的对象