Skip to content
Snippets Groups Projects
mongodb.pp 2.58 KiB
Newer Older
class iaas::profile::mongodb (
   $admin_interface = hiera('iaas::admin_interface', undef),
   $hosts     = hiera('iaas::mongo::endpoint::coordination', undef),
   $bootstrap = false,
   $master    = false,
   $key       = hiera('iaas::profile::mongodb::key', undef),
   $password  = hiera('iaas::profile::mongodb::password', undef),
   $mongouser = hiera('iaas::mongo::ceilometer::user', 'ceilometer'),
   $mongopasswd = hiera('iaas::mongo::ceilometer::password', 'ceilometer'),
){

  class {'::mongodb::globals':
#    manage_package_repo => true,
#    bind_ip => [$::facts["ipaddress_eth1"]], #[$::facts["ipaddress_${admin_interface}"]],
  }

  if $master { 
     if $bootstrap {
        class {'::mongodb::server':
#          bind_ip => ['127.0.0.1',$::facts["ipaddress_eth1"]], #[$::facts["ipaddress_${admin_interface}"]],
          bind_ip => ['127.0.0.1',$::facts["ipaddress_${admin_interface}"]],
          port => '27017',
          auth => true,
          journal => 'true',
          keyfile => '/etc/mongodb.key',
          key => $key,   
          verbose => true,
          create_admin   => true,
          store_creds    => true,
          admin_username => "admin",
          admin_password => $password,
        } ->
            
        class {'::mongodb::client': } ->
           
        mongodb::db { 'ceilometer':
          user   => $mongouser,
          password => $mongopasswd,
        }
     } else {
        class {'::mongodb::server':
#           bind_ip => ['127.0.0.1',$::facts["ipaddress_eth1"]], #[$::facts["ipaddress_${admin_interface}"]],
           bind_ip => ['127.0.0.1',$::facts["ipaddress_${admin_interface}"]],
           replset => 'rs0',
           replset_config => { 'rs0' => { ensure  => present, members => $hosts  }  },
           port => '27017',
           auth => true,
           journal => 'true',
           keyfile => '/etc/mongodb.key',
           key => $key,
           verbose => true,
           store_creds    => true,
           admin_username => "admin",
           admin_password => $password,
         }
     }
 
  } else {

     class {'::mongodb::server':
#       bind_ip => ['127.0.0.1',$::facts["ipaddress_eth1"]], #[$::facts["ipaddress_${admin_interface}"]],
       bind_ip => ['127.0.0.1',$::facts["ipaddress_${admin_interface}"]],
       port => '27017',
       auth => true,
       journal => 'true',
       keyfile => '/etc/mongodb.key',
       key => $key,
       verbose => true,
       store_creds    => true,
       admin_username => "admin",
       admin_password => $password,
       replset        => 'rs0',
     } ->

     class {'::mongodb::client': }

  }
}