使用 Puppet 文件资源复制文件失败

使用 Puppet 文件资源复制文件失败

我正在尝试使用文件资源复制文件。我的代码如下:

node 'Node-002' {
 file { "/root/helloworld.txt":
 ensure => file,
 owner  => "root",
 group  => "root",
 mode   => "0644",
 source  => "puppet://modules/templates/${fqdn}/hosts.erb",
}
}

但它失败了,出现以下错误

Error: /Stage[main]/Main/Node[Node-002]/File[/root/helloworld.txt]: Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/templates/Node-002.example.com/hosts.erb

模板位置如下:

  ls -l /apps/wps/puppetlabs/code/environments/production/modules/templates/Node-002.example.com/hosts.erb
 -rw-r--r-- 1 puppet puppet 462 Jul 20 02:13 /apps/wps/puppetlabs/code/environments/production/modules/templates/Node-002.wiley.com/hosts.erb

即使我在source参数中给出了完整路径,它仍然会失败并出现相同的错误。

我正在使用 Puppet 4.5.4

请建议

答案1

您的模块似乎不符合标准目录结构。源 URL 为puppet:///modules/foo/bar.txt,Puppet 将查找${codedir}/environments/production/modules/foo/files/bar.txt。静态文件应位于files模块内的子目录中。模板应位于templates模块内的子目录中,并在file资源中引用content => template('foo/bar.erb')。您使用 ERB 模板作为源似乎有些令人困惑,因为无论如何都不会对其进行处理。

https://docs.puppet.com/puppet/latest/reference/modules_fundamentals.html了解你的模块应该如何构建。

相关内容