Vagrant中Puppet未使用指定环境路径的问题求助
问题解决方法
错误原因
你同时配置了Puppet环境参数与单独的manifests路径参数,导致Vagrant忽略了环境模式的路径规则,转而尝试在Vagrantfile所在的C:/vagrantdemo目录下查找manifests文件夹,但你的目录结构里并没有这个文件夹,因此触发报错。
修正步骤
- 删除配置中的
puppet.manifests_path和puppet.manifest_file两行代码 - 修正
environment_path的路径:由于Vagrantfile就在C:/vagrantdemo目录下,使用相对路径./environments即可(或者直接写绝对路径C:/vagrantdemo/environments,避免路径解析问题)
修正后的完整配置代码:
config.vm.provision "puppet" do |puppet| puppet.environment = "testenv" puppet.environment_path = "./environments" end
原理说明
当启用Puppet环境(设置environment参数)时,Vagrant会自动遵循Puppet的环境目录规范查找manifest文件:它会前往environment_path/<环境名>/manifests目录下,默认加载default.pp文件。这种场景下完全不需要额外指定manifests路径和文件名,这两个参数仅适用于不使用环境模式的场景,混用会引发路径冲突。
内容的提问来源于stack exchange,提问作者Kent
相关产品推荐
相关产品推荐

