|
1 | | -# This installs Ops Manager. See README.md for more info. |
2 | | - |
| 1 | +# This installs Ops Manager |
| 2 | +# |
| 3 | +# @param user |
| 4 | +# The user that owns the config file |
| 5 | +# |
| 6 | +# @param group |
| 7 | +# The group that owns the config file |
| 8 | +# |
| 9 | +# @param opsmanager_url |
| 10 | +# The fully qualified url where opsmanager runs. Must include the port. |
| 11 | +# |
| 12 | +# @param opsmanager_mongo_uri |
| 13 | +# Full URI where the Ops Manager application mongodb server(s) can be found. |
| 14 | +# |
| 15 | +# @param ca_file |
| 16 | +# Ca file for secure connection to backup agents. |
| 17 | +# |
| 18 | +# @param pem_key_file |
| 19 | +# Pem key file containing the cert and private key used for secure connections to backup agents. |
| 20 | +# |
| 21 | +# @param pem_key_password |
| 22 | +# The password to the pem key file. |
| 23 | +# |
3 | 24 | class mongodb::opsmanager ( |
4 | | - String[1] $user = $mongodb::opsmanager::params::user, |
5 | | - String[1] $group = $mongodb::opsmanager::params::group, |
6 | | - Enum['running', 'stopped'] $ensure = $mongodb::opsmanager::params::ensure, |
7 | | - String[1] $package_name = $mongodb::opsmanager::params::package_name, |
8 | | - String[1] $package_ensure = $mongodb::opsmanager::params::package_ensure, |
9 | | - Boolean $service_enable = $mongodb::opsmanager::params::service_enable, |
10 | | - Boolean $service_manage = $mongodb::opsmanager::params::service_manage, |
11 | | - String[1] $service_name = $mongodb::opsmanager::params::service_name, |
12 | | - Stdlib::Httpurl $download_url = $mongodb::opsmanager::params::download_url, |
13 | | - String[1] $mongo_uri = $mongodb::opsmanager::params::mongo_uri, |
14 | | - Stdlib::Httpurl $opsmanager_url = $mongodb::opsmanager::params::opsmanager_url, |
| 25 | + String[1] $user = 'mongodb-mms', |
| 26 | + String[1] $group = 'mongodb-mms', |
| 27 | + Enum['running', 'stopped'] $ensure = 'running', |
| 28 | + String[1] $package_name = 'mongodb-mms', |
| 29 | + String[1] $package_ensure = 'present', |
| 30 | + Boolean $service_enable = true, |
| 31 | + Boolean $service_manage = true, |
| 32 | + String[1] $service_name = 'mongodb-mms', |
| 33 | + Stdlib::Httpurl $download_url = 'https://downloads.mongodb.com/on-prem-mms/rpm/mongodb-mms-4.0.1.50101.20180801T1117Z-1.x86_64.rpm', |
| 34 | + String[1] $mongo_uri = 'mongodb://127.0.0.1:27017', |
| 35 | + Stdlib::Httpurl $opsmanager_url = "http://${facts['fqdn']}:8080", |
15 | 36 | String[1] $client_certificate_mode = 'None', |
16 | 37 | String[1] $from_email_addr = '[email protected]', |
17 | 38 | String[1] $reply_to_email_addr = '[email protected]', |
|
23 | 44 | Boolean $ssl = false, |
24 | 45 | Boolean $ignore_ui_setup = true, |
25 | 46 | #optional settings |
26 | | - Optional[String[1]] $ca_file = $mongodb::opsmanager::params::ca_file, |
27 | | - Optional[String[1]] $pem_key_file = $mongodb::opsmanager::params::pem_key_file, |
28 | | - Optional[String[1]] $pem_key_password = $mongodb::opsmanager::params::pem_key_password, |
| 47 | + Optional[String[1]] $ca_file = undef, |
| 48 | + Optional[String[1]] $pem_key_file = undef, |
| 49 | + Optional[String[1]] $pem_key_password = undef, |
29 | 50 | Optional[String[1]] $user_svc_class = undef, # Default: com.xgen.svc.mms.svc.user.UserSvcDb External Source: com.xgen.svc.mms.svc.user.UserSvcCrowd or Internal Database: com.xgen.svc.mms.svc.user.UserSvcDb |
30 | 51 | Optional[Integer] $snapshot_interval = undef, # Default: 24 |
31 | 52 | Optional[Integer] $snapshot_interval_retention = undef, # Default: 2 |
32 | 53 | Optional[Integer] $snapshot_daily_retention = undef, # Default: 0 |
33 | 54 | Optional[Integer] $snapshot_weekly_retention = undef, # Default: 2 |
34 | 55 | Optional[Integer] $snapshot_monthly_retention = undef, # Default: 1 |
35 | 56 | Optional[Integer] $versions_directory = undef, # Linux default: /opt/mongodb/mms/mongodb-releases/ |
| 57 | +) { |
| 58 | + |
| 59 | + case $package_ensure { |
| 60 | + 'absent': { |
| 61 | + $my_package_ensure = 'absent' |
| 62 | + $file_ensure = 'absent' |
| 63 | + } |
| 64 | + default: { |
| 65 | + $my_package_ensure = $package_ensure |
| 66 | + $file_ensure = 'present' |
| 67 | + } |
| 68 | + } |
| 69 | + |
| 70 | + $config_file = '/opt/mongodb/mms/conf/conf-mms.properties' |
36 | 71 |
|
37 | | - ) inherits mongodb::opsmanager::params { |
| 72 | + package { $package_name: |
| 73 | + ensure => $my_package_ensure, |
| 74 | + source => $download_url, |
| 75 | + } |
| 76 | + |
| 77 | + file { $config_file: |
| 78 | + ensure => $file_ensure, |
| 79 | + owner => $user, |
| 80 | + group => $group, |
| 81 | + mode => '0640', |
| 82 | + content => epp('mongodb/opsmanager/conf-mms.properties.epp'), |
| 83 | + } |
38 | 84 |
|
39 | | - contain mongodb::opsmanager::install |
40 | | - contain mongodb::opsmanager::config |
41 | | - contain mongodb::opsmanager::service |
| 85 | + if $service_manage { |
| 86 | + service { $service_name: |
| 87 | + ensure => $ensure, |
| 88 | + enable => $service_enable, |
| 89 | + } |
| 90 | + } |
42 | 91 |
|
43 | | - if ($mongo_uri == 'mongodb://127.0.0.1:27017') { |
| 92 | + if $mongo_uri == 'mongodb://127.0.0.1:27017' { |
44 | 93 | include mongodb::server |
45 | 94 | } |
46 | 95 |
|
47 | | - if ($ensure == 'running') { |
48 | | - Class['mongodb::opsmanager::install'] |
49 | | - ~> Class['mongodb::opsmanager::config'] |
50 | | - ~> Class['mongodb::opsmanager::service'] |
| 96 | + if $ensure == 'running' { |
| 97 | + Package[$package_name] -> File[$config_file] |
| 98 | + if $service_manage { |
| 99 | + [Package[$package_name], File[$config_file]] ~> Service[$service_name] |
| 100 | + } |
51 | 101 | } |
52 | 102 | } |
0 commit comments