vagrant使用的确切puppet命令是什么,用于puppet配置管理?

4
我将使用vagrant和puppet进行配置。我的vagrantfile中的配置如下:
  config.vm.provision "puppet" do |puppet|
    puppet.manifests_path = "puppet/manifests"
    puppet.hiera_config_path = "puppet/hiera.yaml"
    puppet.module_path    = "../puppet/modules"
    puppet.manifest_file  = "site.pp"
  end

我有另一个虚拟机没有被Vagrant管理,想要在上面应用Puppet配置。我想使用与Vagrant使用的完全相同的“puppet apply”命令。

请问有人能告诉我Vagrant使用的确切“puppet apply”命令是什么吗?

2个回答

2
如果你需要直接答案,命令是:
sudo puppet apply --hiera_config puppet/hiera.yaml --modulepath=../puppet/modules puppet/manifests/site.pp

通常,当前文件夹(包括模块、清单文件夹等)将被挂载在客户端实例的/vagrant下。在执行vagrant upvagrant ssh进入该实例后,您可以进入/vagrant文件夹并运行上述puppet apply命令,以验证命令是否正常运行。


2

这是一个开源项目,你可以随时查看源代码:plugins/provisioners/puppet/provisioner/puppet.rb。相关方法为run_puppet_apply。或者您可以在测试配置过程中启用详细日志记录并检查日志以查看命令行。

我有另一个未由vagrant管理的虚拟机,想要在其上应用puppet配置。我想使用与vagrant使用的“puppet apply”命令完全相同的命令。

那不可能。确切的vagrant puppet配置命令包含对临时附加文件夹的引用,其中包含vagrant文件的位置。

有人能告诉我vagrant正在使用的确切的“puppet apply”命令吗?

没有人能够做到这一点,因为确切的命令是特定于您的环境的。

我的建议是从日志中提取应用于现有VM之一的命令,然后将其用作构建自己的手动命令的起点。相关的命令项是模块路径(其中将包含对临时共享文件夹的引用,基本上使../puppet/modules在VM中可见),您的hiera文件(将其“上传”到临时文件中)以及FACTER定义(如果有)。


我想使用Puppet应用配置。我可以将所有Puppet代码(site.pp、hiera文件、模块等)复制到虚拟机上并执行“puppet apply”。为此,我需要知道需要传递给“puppet apply”的其他参数。例如,我想知道如何在命令行上指定Hiera细节以供“puppet apply”使用。我是Puppet的新手,所以对我来说,最简单的方法是查找由Vagrant生成的“puppet apply”命令。 - Anand Patel
查看 Vagrant 源代码中如何构建命令行: options << "--modulepath '#{module_paths.join(module_path_sep)}'", options << "--hiera_config=#{@hiera_config_path}", options << "--manifestdir #{manifests_guest_path}", options << @manifest_file。因此,将构建为类似于 puppet apply -modulepath /tmp/puppet/modules -hiera_config=/tmp/puppet/hiera.yaml -manifestdir /tmp/puppet/manifests site.pp 的内容。 - Remus Rusanu
根据您的输入,我设置了适当的参数值并执行了以下命令:“puppet apply --modulepath= --hiera_config= --manifestdir= site.pp”,并且它成功地运行了。 - Anand Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接