我是一个木偶新手。我正在尝试设置一个厨师风格的部署环境。我设置了一个puppet-master服务器,我希望能够配置/部署到我同时设置的两个节点。
我现在对我的木偶设置的期望是我的两台服务器(称为img01和img02)自动创建一个名为/tmp/test_file.txt的文件。
我甚至不确定如何真正加载"清单。我只是假设site.pp中的任何内容都会自动加载,但事实并非如此。当我运行" puppet apply /etc/puppet/manifests/site.pp" ;,我得到以下内容:
Error: Could not parse for environment production: No file(s) found for import of 'test' at /etc/puppet/manifests/site.pp:3 on node puppet.lgwp.com
Error: Could not parse for environment production: No file(s) found for import of 'test' at /etc/puppet/manifests/site.pp:3 on node puppet.lgwp.com
这就是我的清单设置现在的样子:
puppet-master服务器上的证书列表:
+ "img01.lgwp.com.com" (SHA256) (omitted)
+ "img02.lgwp.com" (SHA256) (omitted)
+ "puppet.lgwp.com" (SHA256) (omitted) (alt names: "DNS:puppet.lgwp.com")
/etc/puppet/manifest/site.pp:
import "test"
import "nodes"
Exec { path => "/usr/bin:/usr/sbin/:/bin:/sbin" }
/etc/puppet/manifest/nodes.pp:
import "test"
node "imageserver" {
include "tempfile"
}
node 'img01.lgwp.com' inherits imageserver {
}
node 'img02.lgwp.com' inherits imageserver {
}
/etc/puppet/modules/test/manifests/test.pp:
class test {
package { test: ensure => latest }
file { "test_file":
path => '/tmp/test_file.txt',
ensure => present,
mode => 0755,
content => 'hola world',
source => "puppet:///modules/test/test_file",
require => Package["test"],
}
}
答案 0 :(得分:1)
不要使用导入。只是不要。
删除现有的import
语句,然后更改manifest
中的puppet.conf
设置,以包含/etc/puppet/manifests
中的所有文件。
[main]
manifest=/etc/puppet/manifests/
除非你有一个include tempfile
模块,否则 tempfile
也没有意义。尝试
include test
test
模块中的其他类应命名为test::something
,也可以包含在内。 Puppet在相应的模块中找到清单。实际上不再需要使用import
了。