如何指定的目录puppet:///private/ 运行时';木偶应用';?

如何指定的目录puppet:///private/ 运行时';木偶应用';?,puppet,Puppet,所以,我有一个木偶仓库。它的版本控制为git之类的东西。对我来说,在将这些更改提交到puppet服务器之前,可以在我的机器上对该存储库的副本进行初步更改,然后在测试计算机上尝试这些更改,这将非常方便(避免了触摸生产机器进行测试的麻烦,以及puppetca签署临时EC2实例的麻烦)。我可以scp将repostory的副本转移到适当的机器上,并执行puppet apply site.pp--modulepath=foo--templatedir=blah,它主要起作用 直到我有一个源于puppet:

所以,我有一个木偶仓库。它的版本控制为
git
之类的东西。对我来说,在将这些更改提交到puppet服务器之前,可以在我的机器上对该存储库的副本进行初步更改,然后在测试计算机上尝试这些更改,这将非常方便(避免了触摸生产机器进行测试的麻烦,以及puppetca签署临时EC2实例的麻烦)。我可以
scp
将repostory的副本转移到适当的机器上,并执行
puppet apply site.pp--modulepath=foo--templatedir=blah
,它主要起作用

直到我有一个源于
puppet:///private/foo
。然后它的所有
无法评估:无法从源检索信息puppet:///private/foo 在/home/ubuntu/ops puppet/production/modules/foobar/manifests/baz.pp:68


我是否可以使用命令行标志来指定“私有”文件的路径?我似乎在文档中找不到它(但今天早上我可能忘记了;)

检查您的/etc/puppet/fileserver.conf文件(http://docs.puppetlabs.com/guides/file_serving.html#file-服务器配置),并确保它有一个指向预期目录的[private]块


Zac B关于检查私有目录权限问题的评论也是一个好主意。

检查您的/etc/puppet/fileserver.conf文件(http://docs.puppetlabs.com/guides/file_serving.html#file-服务器配置),并确保它有一个指向预期目录的[private]块


Zac B关于检查私有目录权限的问题的评论也是一个好主意。

测试服务器上是否存在具有适当权限的
private
目录?去查看
/etc/puppet
,或者你放文件的任何地方,以确保这个错误不是真的。如果错误是准确的,请将
/private
目录包含在您的SCP中(或者只是SCP整个
/etc/puppet
文件夹)。存储库将被重新同步到
/home/ubuntu/puppet
,而不是
/etc/puppet
。如果我能找到一个解决方案,而不涉及破解/etc/puppet(下面是peruser@pwan),那将是一件非常了不起的事情,因为这有点乏味,因为我在这里实际使用了几个实例(rsyncable东西和可访问的命令行标志非常可爱)--但如果没有,我想这只是我必须处理的问题。
private
目录在测试服务器上是否具有适当的权限?去查看
/etc/puppet
,或者你放文件的任何地方,以确保这个错误不是真的。如果错误是准确的,请将
/private
目录包含在您的SCP中(或者只是SCP整个
/etc/puppet
文件夹)。存储库将被重新同步到
/home/ubuntu/puppet
,而不是
/etc/puppet
。如果我能找到一个解决方案,而不涉及破解/etc/puppet(下面是peruser@pwan),那将是一件非常了不起的事情,因为这有点乏味,因为我在这里实际使用了几个实例(rsyncable东西和可访问的命令行标志非常可爱)--但如果没有,我想那只是我必须应付的事情。好吧,我必须努力,但我能够把它变成一个解决方案。由于rsync的原因,我试图从位于
/home/ubuntu/puppet
的git存储库的副本中应用
puppet
,因此我必须进入/etc/puppet并将该存储库中的puppet.conf、fileserver.conf和
private
目录进行符号链接。(将整个目录符号链接到
/etc/puppet
不起作用;我认为etckeeper钩子被吓坏了。);我想用命令行指定它,但是
--fsconfig
似乎只是puppetmaster。布莱,振作起来;您可以编写一个bash脚本来处理符号链接的创建,并在完成测试时将其拆下(或者,如果您担心忘记混乱,可以通过cron将其拆下)。然后,您只需运行两个命令即可进行测试:您的scp,然后生成_links.sh或what-have-you。另一种方法是切换到使用“private”模块,将您的私有文件移动到/etc/puppet/modules/private/files下,并将源代码更改为puppet://modules/private/foo. 您可能需要在/etc/puppet/fileserver.conf中添加一个[modules]块,以便puppet将在modules目录下为文件提供服务器。由于rsync的原因,我试图从位于
/home/ubuntu/puppet
的git存储库的副本中应用
puppet
,因此我必须进入/etc/puppet并将该存储库中的puppet.conf、fileserver.conf和
private
目录进行符号链接。(将整个目录符号链接到
/etc/puppet
不起作用;我认为etckeeper钩子被吓坏了。);我想用命令行指定它,但是
--fsconfig
似乎只是puppetmaster。布莱,振作起来;您可以编写一个bash脚本来处理符号链接的创建,并在完成测试时将其拆下(或者,如果您担心忘记混乱,可以通过cron将其拆下)。然后,您只需运行两个命令即可进行测试:您的scp,然后生成_links.sh或what-have-you。另一种方法是切换到使用“private”模块,将您的私有文件移动到/etc/puppet/modules/private/files下,并将源代码更改为puppet://modules/private/foo. 您可能需要在/etc/puppet/fileserver.conf中添加一个[modules]块,以便puppet能够处理文件