使用 Puppet missing dsc22 在 Vagrant Centos 上安装 Cassandra

Installing Cassandra on Vagrant Centos using Puppet missing dsc22

我是木偶新手。我知道 yum 中缺少 cassandra,所以我认为 puppet 食谱会下载并安装它,但似乎 locp/cassandra 只是试图从 yum 安装它。该食谱应该有效,但我在 https://github.com/locp/cassandra 上没有看到任何关于为什么它对我不起作用或我需要在它起作用之前设置的任何东西。

我使用 librarian-puppet 安装 puppet/modules 中的模块。

错误

==> default: Notice: /Stage[main]/Cassandra/File[/var/lib/cassandra/data]: Dependency Package[dsc22] has failures: true

Vagrantfile

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

Vagrant.configure(2) do |config|
  config.vm.box = "puphpet/centos65-x64"

  config.vm.provision "puppet" do |p|
    p.module_path = "puppet/modules"
    p.manifests_path = "puppet/manifests"
    p.manifest_file = "site.pp"
  end
end

puppet/manifests/site.pp

class { 'cassandra':
  cluster_name    => 'foobar',
  listen_address  => "${::ipaddress}",
}

puppet/Puppetfile

forge 'https://forgeapi.puppetlabs.com'

mod "locp/cassandra"

这可能是因为未配置存储库(参见 here

将以下内容添加到您的 site.pp 并确保在您的 cassandra class

中添加 require
class repo {
  yumrepo { "datastax":
    descr          => "DataStax Repo for Apache Cassandra",
    baseurl        => "http://rpm.datastax.com/community",
    gpgcheck       => "0",
    enabled        => "1";
  } 
}

class { 'cassandra':
  cluster_name    => 'foobar',
  listen_address  => "${::ipaddress}",
  require         => Yumrepo["datastax"],
}

include repo
include cassandra

您也可以使用 cassandra::datastax_repo class。要将其纳入@Frédéric-Henri 提供的答案,可以执行以下操作:

class { 'cassandra::datastax_repo': } ->
class { 'cassandra':
    cluster_name   => 'foobar',
    listen_address => "${::ipaddress}"
}