Skip to content

Commit 37dd6f0

Browse files
authored
Merge pull request #521 from ekohl/refactor-ops-handling
Refactor opsmanager handling
2 parents e19b6a5 + 1de26ab commit 37dd6f0

File tree

9 files changed

+112
-194
lines changed

9 files changed

+112
-194
lines changed

README.md

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,6 @@ and then set the emails later.
161161

162162
Most of the interaction for the server is done via `mongodb::opsmanager`. For
163163
more options please have a look at [mongodb::opsmanager](#class-mongodbopsmanager).
164-
There are also some settings that can be configured in `mongodb::globals`.
165164

166165
## Reference
167166

@@ -185,8 +184,6 @@ There are also some settings that can be configured in `mongodb::globals`.
185184
* `mongodb::mongos::config`: Configures Mongos configuration files
186185
* `mongodb::mongos::install`: Install Mongos software packages
187186
* `mongodb::mongos::service`: Manages Mongos service
188-
* `mongodb::opsmanager::install` : Install Ops Manager software package
189-
* `mongodb::opsmanager::service` : Manages Ops Manager (mongodb-mms) service
190187

191188
#### Class: mongodb::globals
192189
*Note:* most server specific defaults should be overridden in the `mongodb::server`
@@ -654,22 +651,6 @@ Plain-text user password (will be hashed)
654651
##### `roles`
655652
Array with user roles. Default: ['dbAdmin']
656653

657-
##### `opsmanager_url`
658-
The fully qualified url where opsmanager runs. Must include the port. Ex:
659-
'http://opsmanager.yourdomain.com:8080'
660-
661-
##### `opsmanager_mongo_uri`
662-
Full URI where the Ops Manager application mongodb server(s) can be found. Default: 'mongodb://127.0.0.1:27017'
663-
664-
##### `ca_file`
665-
Ca file for secure connection to backup agents.
666-
667-
##### `pem_key_file`
668-
Pem key file containing the cert and private key used for secure connections to backup agents.
669-
670-
##### `pem_key_password`
671-
The password to the pem key file.
672-
673654
### Providers
674655

675656
#### Provider: mongodb_database

manifests/opsmanager.pp

Lines changed: 75 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,38 @@
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+
#
324
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",
1536
String[1] $client_certificate_mode = 'None',
1637
String[1] $from_email_addr = '[email protected]',
1738
String[1] $reply_to_email_addr = '[email protected]',
@@ -23,30 +44,59 @@
2344
Boolean $ssl = false,
2445
Boolean $ignore_ui_setup = true,
2546
#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,
2950
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
3051
Optional[Integer] $snapshot_interval = undef, # Default: 24
3152
Optional[Integer] $snapshot_interval_retention = undef, # Default: 2
3253
Optional[Integer] $snapshot_daily_retention = undef, # Default: 0
3354
Optional[Integer] $snapshot_weekly_retention = undef, # Default: 2
3455
Optional[Integer] $snapshot_monthly_retention = undef, # Default: 1
3556
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'
3671

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+
}
3884

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+
}
4291

43-
if ($mongo_uri == 'mongodb://127.0.0.1:27017') {
92+
if $mongo_uri == 'mongodb://127.0.0.1:27017' {
4493
include mongodb::server
4594
}
4695

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+
}
51101
}
52102
}

manifests/opsmanager/config.pp

Lines changed: 0 additions & 13 deletions
This file was deleted.

manifests/opsmanager/install.pp

Lines changed: 0 additions & 41 deletions
This file was deleted.

manifests/opsmanager/params.pp

Lines changed: 0 additions & 20 deletions
This file was deleted.

manifests/opsmanager/service.pp

Lines changed: 0 additions & 19 deletions
This file was deleted.

spec/classes/ops_manager_install_spec.rb

Lines changed: 0 additions & 20 deletions
This file was deleted.

spec/classes/ops_manager_spec.rb

Lines changed: 0 additions & 37 deletions
This file was deleted.

spec/opsmanager_spec.rb

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
require 'spec_helper'
2+
3+
describe 'mongodb::opsmanager' do
4+
on_supported_os.each do |os, facts|
5+
context "on #{os}" do
6+
let(:facts) { facts }
7+
8+
let(:params) do
9+
{
10+
opsmanager_url: 'http://localhost:8080'
11+
}
12+
end
13+
14+
describe 'with defaults' do
15+
it { is_expected.to compile.with_all_deps }
16+
17+
it { is_expected.to contain_service('mongodb') }
18+
19+
it do
20+
is_expected.to create_package('mongodb-mms').
21+
with_ensure('present')
22+
end
23+
24+
it do
25+
is_expected.to contain_file('/opt/mongodb/mms/conf/conf-mms.properties').
26+
with_ensure('file').
27+
that_requires('Package[mongodb-mms]')
28+
end
29+
30+
it do
31+
is_expected.to contain_service('mongodb-mms').
32+
that_subscribes_to(['Package[mongodb-mms]', 'File[/opt/mongodb/mms/conf/conf-mms.properties]'])
33+
end
34+
end
35+
end
36+
end
37+
end

0 commit comments

Comments
 (0)