我正在尝试从puppet master到代理进行简单的文件复制。
[root@****************** manifests]# cat site.pp
file {'/home/ec2-user/my_bash_script.sh':
source => "puppet:///modules/mymodule/my_bash_script.sh",
mode => '755',
}
请找出错误。
[root@ip-***********/]# puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for ip-10-20-1-137.dev.uberops.net
Info: Applying configuration version '1472255014'
Error: /Stage[main]/Main/File[my_bash_script.sh]: Could not evaluate:
Could not retrieve information from environment production source(s)
puppet:///modules/mymodule/my_bash_script.sh
Notice: Finished catalog run in 0.06 seconds
任何人都可以告诉我这里缺少什么。
答案 0 :(得分:2)
由于您使用的是Puppet> = 3.7,因此您需要将目录环境用于您自己的模块。 /etc/puppet/modules/
目录或$basemodulepath
用于未声明的基本模块,如stdlib,lvm等,而是具有引用的类型,函数等。
将您的模块从/etc/puppet/modules/
移至/etc/puppet/environments/'environment'/modules
客户端相应的目录环境,以解决您的问题。
其他信息:
对于Puppet Enterprise 3.8,这将是/etc/puppetlabs/puppet/environments/'environment'/modules
。对于Puppet 4 Enterprise和非Enterprise,这将是/etc/puppetlabs/code/environments/'environment'/modules
。
使用生产的默认目录环境,对于您的情况,这将是/etc/puppet/environments/production/modules
。
答案 1 :(得分:1)
Could not retrieve information from environment production source(s)
此错误表明,puppet无法找到您安抚的文件。
请仔细检查您提供的路径以及文件是否存在。
常规文件结构如下:
-/etc/puppet
-/etc/puppet/manifest/
-/etc/puppet/files
-/etc/puppet/modules
如果您已将模块目录设置在其他位置(/ modules / mymodule / files / your-file-here),那么您的文件路径将是;
puppet:///modules-directory/modules-name/file-name
,puppet:///modules/mymodule/your-file-here
答案 2 :(得分:1)
网址puppet:///modules/mymodule/my_bash_script.sh
对应于相对于适用模块路径的文件mymodule/files/my_bash_script.sh
。该文件必须存在并且可由master / puppetserver进程读取。可能产生这种错误的最常见问题是