在多个Puppet环境之间共享模块

时间:2017-06-23 11:53:25

标签: vagrant puppet

我有一个绝对的噩梦让Puppet加载一组将在多个环境之间共享的模块。

puppet / environments / development / modules中的模块加载得很好但是没有找到puppet / modules中的依赖项。

我项目的文件夹结构是:

enter image description here

该项目在bitbucket: https://bitbucket.org/andrew_hancox/vagrantmoodle

2 个答案:

答案 0 :(得分:1)

我通常用来管理模块依赖项的是拥有一个直接安装模块的shell脚本,这样就可以下载必要的依赖项并推送到正确的位置。

我将在我的Vagrantfile

index    col1   col2
0        AA      24
1        AB      26
2        AC      14 
3        AD      15

脚本shell类似于

  node_config.vm.provision "shell", path: "puppet/script/install-puppet-modules-app.sh"
  node_config.vm.provision :puppet do |puppet|
    puppet.environment = "production"
    puppet.environment_path = "puppet/environments"
    puppet.manifests_path = "puppet/environments/production/manifests"
    puppet.manifest_file = "base-app.pp"
    #puppet.options = "--verbose --trace"
  end

这里你将拥有你的apache,mysql模块等

#!/bin/bash puppet module install puppet-nginx --version 0.4.0 文件将找到已安装模块的默认位置

environment.conf

答案 1 :(得分:0)

感谢@ michael-mulqueen

让整个事情正常运转

他修复它的方法是在vagrant文​​件中设置模块路径:

puppet.module_path = ["puppet/modules", "puppet/environments/development/modules"]

您可以在问题中引用的仓库中看到这一点。