stream浪汉可以指向一个Puppet清单目录来执行吗?

我正在使用Vagrant来启动一些初始的Puppetconfiguration,并且对如何在puppet执行工作stream程中包含/运行多个清单(除了site.pp之外)感到困惑,而没有将额外的清单模块化并包含它们。

在我指向Vagrant(见下文)的puppet清单目录中,我有两个清单,我想执行:site.pp和hierasetup.pp。

config.vm.provision "puppet" do |puppet| puppet.manifests_path = "puppet_files/manifests" puppet.module_path = "puppet_files/modules" puppet.manifest_file = "site.pp" puppet.options = "--verbose --debug" end 

目前我有site.pp是调用hierasetup.pp的清单。 我的网站.pp看起来像这样:

 File { owner => 'root', group => 'root', mode => '0644', } import "hierasetup.pp" include jboss 

但是,我得到了有关“导入”的弃用错误:

警告:在/tmp/vagrant-puppet-1/manifests/site.pp:33不推荐使用'import'。 请参阅http://links.puppetlabs.com/puppet-import-deprecation (在grammar.ra:610:在_reduce_190中)

根据引用的URL下的“事情要尝试”,它说:“ 为了保持你的节点定义在单独的文件,指定一个目录作为你的主要清单 ”。

此外,这主要performance的傀儡文件说:

build议:如果你主要使用主要的清单,而不是依赖ENC,可以考虑把清单设置改为$ confdir / manifests,这样可以将顶级代码分成多个文件,同时避免import关键字。也将符合简单环境的行为。

看来,木偶可以引用一个完整的目录,而不是只是一个特定的清单文件,这样我可以期望,stream浪者会为此做出规定,并允许我删除“ puppet.manifest_file =”site.pp “行并指向父目录,而不是在那里所有的* .pp文件将被执行,但删除该行在Vagrant只是产生一个关于预期的“default.pp”的抱怨,而不是:

puppet供应商:*configuration的Puppet清单丢失。 请指定一个现有清单的path:/some/path/puppet_files/manifests/default.pp

所以:

  1. 首先,我是否理解了正确调用多个清单的“新”(非导入)方法,即指向一个目录,其中的所有* .pp文件将被执行。
  2. 其次,stream浪者“赶上”这个新的变化,以适应目录的参考与Puppet的“导入”的弃用?

更新:感谢Shane在#2(Vagrant的代码没有被抓到允许指向木偶清单目录)的问题被报告在Vagrant的GitHub问题跟踪器网站上,并已被修补: https : //github.com/mitchellh/vagrant /问题/ 4169

首先,我是否理解了正确调用多个清单的“新”(非导入)方法,即指向一个目录,其中的所有* .pp文件将被执行。

是的你是。 看到这里 :

如果您使用主要清单而不是依赖ENC,请考虑将清单设置更改为$ confdir / manifests。 这使您可以将顶级代码分成多个文件,同时避免导入关键字。

此外, manifestmodulepath也被弃用,以支持目录环境和清单目录行为,请参阅:

现在目录环境已经完成,不build议使用configuration文件环境。 在puppet.conf中定义环境块会引起一个弃用警告,在puppet.conf中使用modulepath,manifest和config_version设置也会引起这个警告。

这对于很多部署来说是一个相当大的改变,但从长远来看应该是一个很好的改进。


其次,stream浪者“赶上”这个新的变化,以适应目录的参考与Puppet的“导入”的弃用?

不,它没有; 从他们的文档:

manifest_file(string) – 将用作Puppet运行的入口点的清单文件的名称。 这个清单文件预计存在于已configuration的manifests_path中

为了和Vagrant一​​起使用,你暂时还处理弃用警告,这是不幸的。 但是,导入不会在4.x之前删除,所以这给了Vagrant一​​段时间的追赶。