Vagrant可以指向Puppet清单目录执行吗?


9

我正在使用Vagrant来启动一些初始的Puppet配置,并对如何在木偶执行工作流程中包括/运行多个清单(不仅仅是site.pp)感到困惑,而又没有将多余的清单放入模块并以这种方式包括它们。

在我将Vagrant指向的木偶清单目录中(见下文),我有两个要执行的清单: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的清单。我的site.pp看起来像这样:

File {
  owner => 'root',
  group => 'root',
  mode  => '0644',
}

import "hierasetup.pp"

include jboss

但是我收到关于“ import”弃用的错误:

警告:在/tmp/vagrant-puppet-1/manifests/site.pp:33中不建议使用“导入”。参见http://links.puppetlabs.com/puppet-import-deprecation (位于grammar.ra:610:_reduce_190'中)

根据“尝试的事情”下引用的URL,它表示“ 要将节点定义保存在单独的文件中,请指定目录作为主清单 ”。

进一步,这个关于主要清单的p文件说:

推荐:如果您大量使用主清单而不是依赖于ENC,请考虑将清单设置更改为$ confdir / manifests。这可让您在避免使用import关键字的情况下将顶级代码分成多个文件。还将匹配简单环境的行为。

看来Puppet可以引用整个目录,而不仅仅是特定的清单文件,因此我希望Vagrant为此提供一个准备,并允许我删除“ puppet.manifest_file =” site.pp “行并指向而不是将在其中执行所有* .pp文件的父目录,但是,在Vagrant中删除该行仅会引起对预期的“ default.pp”的抱怨:

人偶供应商:*缺少配置的人偶清单。请指定现有清单的路径:/some/path/puppet_files/manifests/default.pp

所以:

  1. 首先,我是否理解正确调用多个清单的“新”(非导入)方式,因为要指向目录,该目录中的所有* .pp文件都将在其中执行?
  2. 其次,Vagrant是否已“赶上”这一新更改,以适应Puppet对“ import”的弃用而对目录的引用?

更新:感谢Shane,在Vagrant的GitHub问题跟踪网站上报告了#2的问题(Vagrant的代码未被捕获以允许指向木马清单目录),并且此后进行了修补:https : //github.com/mitchellh/vagrant /问题/ 4169

Answers:


6

首先,我是否理解正确调用多个清单的“新”(非导入)方式,因为要指向目录,该目录中的所有* .pp文件都将在其中执行?

是的你是。看这里

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

此外,manifestmodulepath也越来越有利于目录环境和清单目录行为过时了,看看这里

现在目录环境已完成,配置文件环境已弃用。在puppet.conf中定义环境块将导致弃用警告,以及在puppet.conf中对模块路径,清单和config_version设置的任何使用。

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


其次,Vagrant是否已“赶上”这一新更改,以适应Puppet对“ import”的弃用而对目录的引用?

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

manifest_file(字符串)-清单文件的名称,它将用作Puppet运行的入口点。该清单文件应存在于配置的manifests_path中

要与Vagrant配合使用,您现在就不得不处理弃用警告,这很不幸。但是,导入不会在4.x之前删除,因此这给Vagrant腾出了一些时间来跟上。


好吧,很高兴知道我没有发疯,因为一个多小时以来我一直在努力弄清楚这笔交易是什么。Vagrant开发人员是否意识到该功能的需要,或者是否有地方建议添加这些功能?
SeligkeitIstInGott 2014年

似乎尚未要求他们-请参阅这里。在其中放一个问题,使其与现代人偶更好地匹配(或者,如果您没有github帐户,我会解决)!
Shane Madden

我认为我的开发同事都有github帐户,但是如果我有github帐户,我什至不知道我的登录名是什么。我是IT人士,而不是编码人员,所以我不需要一个。您介意这样做吗?
SeligkeitIstInGott 2014年

1
@SeligkeitIstInGott当然,我会提起诉讼!
Shane Madden 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.