木偶移动文件的权限400?

我试图用木偶来复制一个文件:

file{ '/root/.ssh/id_rsa' : source => 'puppet:///modules/certs/.ssh/id_rsa', } 

权限是-r-------- 1 root root

如果我运行chmod +r文件我的脚本工作,但与上面的权限puppet无法复制文件。

错误:/Stage[main]/Main/Node[default]/File[/root/.ssh/id_rsa]:无法评估:无法检索puppet的文件元数据:///modules/certs/.ssh/id_rsa:服务器上的错误500:服务器错误:权限被拒绝 – /etc/puppetlabs/code/environments/production/modules/certs/files/.ssh/id_rsa

我假设傀儡将作为根运行,因此将能够复制文件。 有没有办法做到这一点,而不改变权限?

错误消息表明您正在使用主/代理设置。 在这种设置中,Puppet master(或服务器)通常在puppet用户下运行,因为它是一个Web应用程序,仅仅提供文件和目录供下载。

只有Puppet代理(在客户端上)将以root身份运行,以便对操作系统进行configuration更改。

你的木偶大师的文件应该是puppet用户可读的,或者通过改变所有权:

 chown puppet id_rsa 

或给组读取权限:

 chgrp puppet id_rsa chmod g+r id_rsa 

或者提供其他的读取权限,就像你对chmod +r所做的那样。

请注意,对文件的访问权限有限。 任何拥有有效Puppet SSL密钥/证书的主机都可以从Puppet主机下载文件,即使它们没有configuration清单/文件。 这不是分发私钥的非常安全的方法。