Skip to content
Snippets Groups Projects
mongodb.pp 2.62 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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,
    
              roles => ['dbAdmin','readWrite'],
    
            }
         } 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': }
    
      }
    }