summaryrefslogtreecommitdiff
path: root/puppet/modules/couchdb/manifests/bigcouch.pp
blob: a97411bf71a824ad6a84789083aa9e93d24beece (plain)
1
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
class couchdb::bigcouch inherits couchdb::base {

  file {
    '/opt/bigcouch':
      ensure => directory,
      mode   => '0755';

    '/etc/couchdb':
      ensure => directory,
      mode   => '0755',
      before => Package['couchdb'];

    '/opt/bigcouch/etc':
      ensure => link,
      target => '/etc/couchdb',
      before => Package['couchdb'];
  }

  # there's no bigcouch in the official debian repo, you need
  # to setup a repository for that. You can use class
  # couchdb::bigcouch::package::cloudant for unauthenticated 0.4.0 packages,
  # or site_apt::leap_repo from the leap_platfrom repository
  # for signed 0.4.2 packages

  Package['couchdb'] {
    name    => 'bigcouch'
  }

  file { '/opt/bigcouch/etc/vm.args':
    content => template('couchdb/bigcouch/vm.args'),
    mode    => '0640',
    owner   => 'bigcouch',
    group   => 'bigcouch',
    require => Package['couchdb'],
    notify  => Service[couchdb]
  }

  file { '/opt/bigcouch/etc/default.ini':
    content => template('couchdb/bigcouch/default.ini'),
    mode    => '0640',
    owner   => 'bigcouch',
    group   => 'bigcouch',
    require => Package['couchdb'],
    notify  => Service[couchdb]
  }

  Service['couchdb'] {
    name     => 'bigcouch'
  }

}