为什么安装puppet模块--force不会安装依赖关系&如何解决?

时间:2014-05-12 13:14:16

标签: module vagrant puppet

我正在和流浪者一起工作用来安装我的开发环境。

我使用shell配置程序来安装puppet的模块:

config.vm.provision :shell do |shell|
    shell.inline = "puppet module install --force garethr-docker"
end

但是当我启动vagrant provision时,我发现puppet没有安装模块依赖项(stdlib,apt& stahma-epel用于此特定模块)。

另一方面,如果删除--force,则会正确安装依赖项,但vagrant provision只会运行一次,因为puppet第二次抛出错误(“模块已安装”)。

我该如何克服这个? THX。

PS,我的完整Vagrantfile:

# -*- mode: ruby -*-
# vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "phusion/ubuntu-14.04-amd64"

  config.vm.provision :shell do |shell|
    shell.inline = "puppet module install --force garethr-docker"
  end

  config.vm.provision "puppet" do |puppet|
    puppet.manifests_path = "puppet/manifests"
    puppet.manifest_file  = "dockervm.pp"
    puppet.options="--verbose --debug"
  end
end

1 个答案:

答案 0 :(得分:1)

在尝试再次安装之前,请检查模块是否已安装。例如:

{ puppet module list | grep garethr-docker > /dev/null; } || \
    puppet module install garethr-docker