所以我的 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/