Vagrant + Puppet puppet.module_path无效

时间:2014-08-31 09:30:12

标签: vagrant puppet vagrantfile

所以我的Vagrant文​​件设置如下:

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "hashicorp/precise64"

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

现在当我vagrant ssh进入我的虚拟机然后运行puppet module install puppetlabs-apache时,我收到以下错误:

Error: Could not install module 'puppetlabs-apache' (latest) Directory /home/vagrant/.puppet/modules does not exist

所以我尝试的是:

mkdir -p /home/vagrant/.puppet/modules

接下来是:

puppet module install puppetlabs-apache

它有效!

但模块文件没有出现在我在Vagrantfile中设置的"modules"目录下的主机上。所以我猜puppet.module_path无效......?

谢谢:)

1 个答案:

答案 0 :(得分:0)

在VM中调用puppet与Puppet不同,因为它用于从主机进行配置。

Vagrant使用的Puppet资源是Vagrant项目的一部分。如您所见,VM内的Puppet命令使用

  • ~/.puppet
  • 中的本地Puppet配置和资源
  • /etc/puppet
  • 中的全球资源

主机和VM之间不共享Puppet配置。