Puppet Class: opscenter::datastax_repo

Defined in:
manifests/datastax_repo.pp

Overview

Class: opscenter::datastax_repo

Parameters:

  • descr (Any) (defaults to: 'DataStax Repo for Apache Cassandra')
  • key_id (Any) (defaults to: '7E41C00F85BFC1706C4FFFB3350200F2B999A372')
  • key_url (Any) (defaults to: 'http://debian.datastax.com/debian/repo_key')
  • pkg_url (Any) (defaults to: undef)
  • release (Any) (defaults to: 'stable')


2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'manifests/datastax_repo.pp', line 2

class opscenter::datastax_repo (
  $descr   = 'DataStax Repo for Apache Cassandra',
  $key_id  = '7E41C00F85BFC1706C4FFFB3350200F2B999A372',
  $key_url = 'http://debian.datastax.com/debian/repo_key',
  $pkg_url = undef,
  $release = 'stable',
  ) {
  case $::osfamily {
    'RedHat': {
      if $pkg_url != undef {
        $baseurl = $pkg_url
      } else {
        $baseurl = 'http://rpm.datastax.com/community'
      }

      yumrepo { 'datastax':
        ensure   => present,
        descr    => $descr,
        baseurl  => $baseurl,
        enabled  => 1,
        gpgcheck => 0,
      }
    }
    'Debian': {
      include apt
      include apt::update

      apt::key {'datastaxkey':
        id     => $key_id,
        source => $key_url,
        before => Apt::Source['datastax'],
      }

      if $pkg_url != undef {
        $location = $pkg_url
      } else {
        $location = 'http://debian.datastax.com/community'
      }

      apt::source {'datastax':
        location => $location,
        comment  => $descr,
        release  => $release,
        include  => {
          'src' => false,
        },
        notify   => Exec['update-opscenter-repos'],
      }

      # Required to wrap apt_update
      exec {'update-opscenter-repos':
        refreshonly => true,
        command     => '/bin/true',
        require     => Exec['apt_update'],
      }
    }
    default: {
      warning("OS family ${::osfamily} not supported")
    }
  }
}