Centos 缺少puppet 4.0流浪者模块

Centos 缺少puppet 4.0流浪者模块,centos,vagrant,puppet,Centos,Vagrant,Puppet,我试图在《流浪汉》中使用木偶模块。 我的盒子正在运行puppet 4.0 我正在使用以下方式安装模块: if [ ! -d /etc/puppet/modules/ ]; then puppet module install puppetlabs-java fi 在site.pp 我有: 我不断收到一个关于找不到声明的类java的错误 为什么木偶找不到我的模块 /etc/puppet/modules/是默认路径,不是吗 流浪档案 Vagrant.configure(2) do |co

我试图在《流浪汉》中使用木偶模块。 我的盒子正在运行puppet 4.0

我正在使用以下方式安装模块:

if [ ! -d /etc/puppet/modules/ ]; then 
    puppet module install puppetlabs-java
fi
site.pp
我有:

我不断收到一个关于
找不到声明的类java的错误
为什么木偶找不到我的模块

/etc/puppet/modules/
是默认路径,不是吗

流浪档案

Vagrant.configure(2) do |config|
  config.vm.box = "bento/centos-7.2"
  config.vm.provider "virtualbox" do |vb|
    vb.gui = true
    vb.memory = "8192"
  end
  config.vm.provision :shell, :path => "upgrade_puppet.sh"
  config.vm.provision :shell, :path => "puppet_modules.sh"

  config.vm.provision :puppet do |puppet|
    puppet.options = '--verbose --debug'
    puppet.environment_path = "puppet/environments"
    puppet.environment = "production"  
  end

end

已提供Vagrant文件,更新了答案

位置在puppet 4中已更改,现在默认使用

因此,您使用puppet provisioner的方式是正确的。但是,vagrant将根据您的vagrant文件将其需要的所有目录上载到来宾: /tmp/流浪木偶/环境/制作

当Vagrant调用puppet apply时,它将在以下位置查找所需的模块: /tmp/流浪木偶/环境/生产/模块

并且您的主机上不存在该模块目录

您可以将if块更改为:

if [ ! -d /vagrant/puppet/environments/production/modules ]; then
    puppet module install puppetlabs-java --modulepath /vagrant/puppet/environments/production/modules
fi
/流浪汉由主人和客人共同分享。这将在主机上的以下位置安装java模块及其依赖项:

puppet
|
+--environments
   +
   -- production
      |
      + -- manifests
      |    +
      |    -- site.pp
      |
      + -- modules
           +
           -- java
           +
           -- stdlib
当您完成漫游时,此内容将上载到主机:

/tmp/vagrant-puppet

根据您的Vagrant文件进行测试和确认。

现在Vagrant文件已经提供,更新了答案

位置在puppet 4中已更改,现在默认使用

因此,您使用puppet provisioner的方式是正确的。但是,vagrant将根据您的vagrant文件将其需要的所有目录上载到来宾: /tmp/流浪木偶/环境/制作

当Vagrant调用puppet apply时,它将在以下位置查找所需的模块: /tmp/流浪木偶/环境/生产/模块

并且您的主机上不存在该模块目录

您可以将if块更改为:

if [ ! -d /vagrant/puppet/environments/production/modules ]; then
    puppet module install puppetlabs-java --modulepath /vagrant/puppet/environments/production/modules
fi
/流浪汉由主人和客人共同分享。这将在主机上的以下位置安装java模块及其依赖项:

puppet
|
+--environments
   +
   -- production
      |
      + -- manifests
      |    +
      |    -- site.pp
      |
      + -- modules
           +
           -- java
           +
           -- stdlib
当您完成漫游时,此内容将上载到主机:

/tmp/vagrant-puppet

根据您的Vagrant文件进行了测试和确认。

正如Jaxim所提到的,这是因为在更新版本的Puppet中默认目录位置已更改

如果您对使用Puppet自动安装moduels感兴趣,我建议您使用R10K vagrant插件,您可以指定模块的版本并使其更易于更新,并允许您下载非forge上的模块,如git repos


正如Jaxim所提到的,这是因为较新版本的Puppet中的默认目录位置发生了更改

如果您对使用Puppet自动安装moduels感兴趣,我建议您使用R10K vagrant插件,您可以指定模块的版本并使其更易于更新,并允许您下载非forge上的模块,如git repos


有点晚了,但我从厨师改为木偶(公司政策,不问!:),遇到了完全相同的情况,来自厨师背景的我拒绝用这么多木偶特有的东西“污染”我的项目文件夹。在我看来,我应该只需要一份流浪汉档案而不需要其他任何东西

我还收到了“在/tmp/vagrant puppet/environments/production中找不到声明的类java”错误消息。因此,经过大量的讨论,我发现在
puppet.options
中,您可以提供在命令行调用
puppet apply
时通常会提供的任何参数

因此,如果有任何帮助,请尝试修改Vagrant文件中的puppet.options,如下所示:

config.vm.provision :puppet do |puppet|
  puppet.options = '--verbose --modulepath=/etc/puppetlabs/code/environments/production/modules'
  puppet.environment_path = "puppet/environments"
  puppet.environment = "production"  
end

这将有助于Puppet找到自己的鼻子,而不是认为/tmp文件夹中的所有内容都可用,而是模块已经安装在自己的文件夹位置。

有点晚了,但我正在从厨师切换到Puppet(公司政策,不问!))遇到了完全相同的情况,来自厨师的背景,我拒绝用这么多木偶特有的东西“污染”我的项目文件夹。在我看来,我应该只需要一份流浪汉档案而不需要其他任何东西

我还收到了“在/tmp/vagrant puppet/environments/production中找不到声明的类java”错误消息。因此,经过大量的讨论,我发现在
puppet.options
中,您可以提供在命令行调用
puppet apply
时通常会提供的任何参数

因此,如果有任何帮助,请尝试修改Vagrant文件中的puppet.options,如下所示:

config.vm.provision :puppet do |puppet|
  puppet.options = '--verbose --modulepath=/etc/puppetlabs/code/environments/production/modules'
  puppet.environment_path = "puppet/environments"
  puppet.environment = "production"  
end

这将有助于Puppet找到自己的鼻子,而不是认为/tmp文件夹中的所有内容都可用,而是模块已经安装在自己的文件夹位置。

我仍然得到
错误:评估错误:评估资源语句时出错。在/tmp/vagrant puppet/environments/production/manifests/site.pp:1:1
@KillerSnail中找不到声明的java类。您可以发布您的vagrant文件吗?另外,您使用的是什么版本的vagrant?vagrant 1.7.4 vagrant文件已发布above@KillerSnail谢谢你上传你的流浪汉档案。我已经更新了我的答案。我仍然得到
错误:评估错误:评估资源语句时出错。在/tmp/vagrant puppet/environments/production/manifests/site.pp:1:1
@KillerSnail中找不到声明的java类。您可以发布您的vagrant文件吗?另外,您使用的是什么版本的vagrant?vagrant 1.7.4 vagrant文件已发布above@KillerSnail谢谢你上传你的流浪汉档案。我已经更新了我的答案。