Vagrant+Puppet puppet.module_path 不起作用

标签 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 时,我收到以下错误:

错误:无法安装模块“puppetlabs-apache”(最新) 目录/home/vagrant/.puppet/modules 不存在

所以我尝试的是:

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

后跟:

puppet 模块安装 puppetlabs-apache

成功了!

但是模块文件没有显示在我的主机中我在 Vagrantfile 中设置的 "modules" 目录下。所以我猜 puppet.module_path 不起作用..?

谢谢:)

最佳答案

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

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

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

Puppet 配置不在主机和虚拟机之间共享。

关于Vagrant+Puppet puppet.module_path 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25590651/

相关文章:

ubuntu - Vagrant:同步文件夹/var/cache/apt

virtual-machine - Vagrant:无法从主机 ping 客户机

virtualization - 如何使用 Vagrant box 打包文件?

ansible - 如何自动测试配置管理脚本?

Vagrantfile:为一个提供者禁用同步文件夹,但不为另一个提供者禁用同步文件夹

vagrant - 配置需要 VM 从 Vagrantfile 运行的 VBoxManage 命令

macos - 访问本地 vagrant 虚拟机上托管的网站

linux - sh startup.sh 使用 puppet 模块启动 tomcat

puppet - 使用资源定义类型的 rspec-puppet 单元测试

vagrant - 允许两个或多个 vagrant VM 在自己的网络上进行通信