Skip to content

Commit 6df86eb

Browse files
committed
Remove 10gen repository support
1 parent 52419bd commit 6df86eb

5 files changed

Lines changed: 128 additions & 149 deletions

File tree

README.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
## Overview
2222

2323
Installs MongoDB on RHEL/Ubuntu/Debian from OS repo, or alternatively from
24-
10gen repository [installation documentation](http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages).
24+
MongoDB community/enterprise repositories.
2525

2626
## Module Description
2727

@@ -38,7 +38,7 @@ instance, without sharding functionality.
3838
* MongoDB service.
3939
* MongoDB client.
4040
* MongoDB sharding support (mongos)
41-
* 10gen/mongodb apt/yum repository.
41+
* MongoDB apt/yum repository.
4242

4343
### Beginning with MongoDB
4444

@@ -71,20 +71,19 @@ class {'mongodb::mongos' :
7171
}
7272
```
7373

74-
Although most distros come with a prepacked MongoDB server we recommend to
75-
use the 10gen/MongoDB software repository, because most of the current OS
76-
packages are outdated and not appropriate for a production environment.
77-
To install MongoDB from 10gen repository:
74+
Although most distros come with a prepacked MongoDB server, you may prefer to
75+
use a more recent version. To install MongoDB from the community repository:
7876

7977
```puppet
8078
class {'mongodb::globals':
8179
manage_package_repo => true,
80+
version => '3.6',
8281
}
8382
-> class {'mongodb::client': }
8483
-> class {'mongodb::server': }
8584
```
8685

87-
If you don't want to use the 10gen/MongoDB software repository or the OS packages,
86+
If you don't want to use the MongoDB software repository or the OS packages,
8887
you can point the module to a custom one.
8988
To install MongoDB from a custom repository:
9089

@@ -147,9 +146,9 @@ Unsafe plain text password could be used with 'password' parameter instead of 'p
147146
* `mongodb::mongos`: Installs and configure Mongos server (for sharding support)
148147

149148
#### Private classes
150-
* `mongodb::repo`: Manage 10gen/MongoDB software repository
151-
* `mongodb::repo::apt`: Manage Debian/Ubuntu apt 10gen/MongoDB repository
152-
* `mongodb::repo::yum`: Manage Redhat/CentOS apt 10gen/MongoDB repository
149+
* `mongodb::repo`: Manage MongoDB software repository
150+
* `mongodb::repo::apt`: Manage Debian/Ubuntu apt MongoDB repository
151+
* `mongodb::repo::yum`: Manage Redhat/CentOS yum MongoDB repository
153152
* `mongodb::server::config`: Configures MongoDB configuration files
154153
* `mongodb::server::install`: Install MongoDB software packages
155154
* `mongodb::server::service`: Manages service

manifests/params.pp

Lines changed: 25 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@
1010
$restart = true
1111
$create_admin = false
1212
$admin_username = 'admin'
13-
$admin_roles = ['userAdmin', 'readWrite', 'dbAdmin', 'dbAdminAnyDatabase', 'readAnyDatabase',
14-
'readWriteAnyDatabase', 'userAdminAnyDatabase', 'clusterAdmin', 'clusterManager', 'clusterMonitor',
15-
'hostManager', 'root', 'restore']
13+
$admin_roles = [
14+
'userAdmin', 'readWrite', 'dbAdmin', 'dbAdminAnyDatabase', 'readAnyDatabase',
15+
'readWriteAnyDatabase', 'userAdminAnyDatabase', 'clusterAdmin',
16+
'clusterManager', 'clusterMonitor', 'hostManager', 'root', 'restore',
17+
]
1618
$handle_creds = true
1719
$store_creds = false
1820
$rcfile = "${::root_home}/.mongorc.js"
@@ -40,30 +42,20 @@
4042
if $manage_package {
4143
$user = pick($mongodb::globals::user, 'mongod')
4244
$group = pick($mongodb::globals::group, 'mongod')
43-
if ($version == undef) {
45+
if $version == undef {
4446
$server_package_name = pick($mongodb::globals::server_package_name, 'mongodb-org-server')
4547
$client_package_name = pick($mongodb::globals::client_package_name, 'mongodb-org-shell')
4648
$mongos_package_name = pick($mongodb::globals::mongos_package_name, 'mongodb-org-mongos')
4749
$package_ensure = true
4850
$package_ensure_client = true
4951
$package_ensure_mongos = true
5052
} else {
51-
# check if the version is greater than 2.6
52-
if $version and (versioncmp($version, '2.6.0') >= 0) {
53-
$server_package_name = pick($mongodb::globals::server_package_name, 'mongodb-org-server')
54-
$client_package_name = pick($mongodb::globals::client_package_name, 'mongodb-org-shell')
55-
$mongos_package_name = pick($mongodb::globals::mongos_package_name, 'mongodb-org-mongos')
56-
$package_ensure = $version
57-
$package_ensure_client = $version
58-
$package_ensure_mongos = $version
59-
} else {
60-
$server_package_name = pick($mongodb::globals::server_package_name, 'mongodb-10gen')
61-
$client_package_name = pick($mongodb::globals::client_package_name, 'mongodb-10gen')
62-
$mongos_package_name = pick($mongodb::globals::mongos_package_name, 'mongodb-10gen')
63-
$package_ensure = $version
64-
$package_ensure_client = $version #this is still needed in case they are only installing the client
65-
$package_ensure_mongos = $version
66-
}
53+
$server_package_name = pick($mongodb::globals::server_package_name, 'mongodb-org-server')
54+
$client_package_name = pick($mongodb::globals::client_package_name, 'mongodb-org-shell')
55+
$mongos_package_name = pick($mongodb::globals::mongos_package_name, 'mongodb-org-mongos')
56+
$package_ensure = $version
57+
$package_ensure_client = $version
58+
$package_ensure_mongos = $version
6759
}
6860
$service_name = pick($mongodb::globals::service_name, 'mongod')
6961
$mongos_service_name = pick($mongodb::globals::mongos_service_name, 'mongos')
@@ -80,7 +72,7 @@
8072
} else {
8173
# RedHat/CentOS doesn't come with a prepacked mongodb
8274
# so we assume that you are using EPEL repository.
83-
if ($version == undef) {
75+
if $version == undef {
8476
$package_ensure = true
8577
$package_ensure_client = true
8678
$package_ensure_mongos = true
@@ -113,10 +105,10 @@
113105
if $manage_package {
114106
$user = pick($mongodb::globals::user, 'mongodb')
115107
$group = pick($mongodb::globals::group, 'mongodb')
116-
if $mongodb::globals::use_enterprise_repo == true {
117-
$edition = 'enterprise'
108+
if $mongodb::globals::use_enterprise_repo {
109+
$edition = 'enterprise'
118110
} else {
119-
$edition = 'org'
111+
$edition = 'org'
120112
}
121113
if ($version == undef) {
122114
$server_package_name = pick($mongodb::globals::server_package_name, "mongodb-${edition}-server")
@@ -128,25 +120,14 @@
128120
$service_name = pick($mongodb::globals::service_name, 'mongod')
129121
$config = '/etc/mongod.conf'
130122
} else {
131-
# check if the version is greater than 2.6
132-
if $version and (versioncmp($version, '2.6.0') >= 0) {
133-
$server_package_name = pick($mongodb::globals::server_package_name, "mongodb-${edition}-server")
134-
$client_package_name = pick($mongodb::globals::client_package_name, "mongodb-${edition}-shell")
135-
$mongos_package_name = pick($mongodb::globals::mongos_package_name, "mongodb-${edition}-mongos")
136-
$package_ensure = $version
137-
$package_ensure_client = $version
138-
$package_ensure_mongos = $version
139-
$service_name = pick($mongodb::globals::service_name, 'mongod')
140-
$config = '/etc/mongod.conf'
141-
} else {
142-
$server_package_name = pick($mongodb::globals::server_package_name, 'mongodb-10gen')
143-
$client_package_name = pick($mongodb::globals::client_package_name, 'mongodb-10gen')
144-
$mongos_package_name = pick($mongodb::globals::mongos_package_name, 'mongodb-10gen')
145-
$package_ensure = $version
146-
$package_ensure_client = $version #this is still needed in case they are only installing the client
147-
$service_name = pick($mongodb::globals::service_name, 'mongodb')
148-
$config = '/etc/mongodb.conf'
149-
}
123+
$server_package_name = pick($mongodb::globals::server_package_name, "mongodb-${edition}-server")
124+
$client_package_name = pick($mongodb::globals::client_package_name, "mongodb-${edition}-shell")
125+
$mongos_package_name = pick($mongodb::globals::mongos_package_name, "mongodb-${edition}-mongos")
126+
$package_ensure = $version
127+
$package_ensure_client = $version
128+
$package_ensure_mongos = $version
129+
$service_name = pick($mongodb::globals::service_name, 'mongod')
130+
$config = '/etc/mongod.conf'
150131
}
151132
$mongos_service_name = pick($mongodb::globals::mongos_service_name, 'mongos')
152133
$mongos_config = '/etc/mongodb-shard.conf'
@@ -155,11 +136,7 @@
155136
$pidfilepath = pick($mongodb::globals::pidfilepath, '/var/run/mongod.pid')
156137
$bind_ip = pick($mongodb::globals::bind_ip, ['127.0.0.1'])
157138
} else {
158-
# although we are living in a free world,
159-
# I would not recommend to use the prepacked
160-
# mongodb server on Ubuntu 12.04 or Debian 6/7,
161-
# because its really outdated
162-
if ($version == undef) {
139+
if $version == undef {
163140
$package_ensure = true
164141
$package_ensure_client = true
165142
$package_ensure_mongos = true

manifests/repo.pp

Lines changed: 26 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3,54 +3,44 @@
33
Variant[Enum['present', 'absent'], Boolean] $ensure = 'present',
44
Optional[String] $version = undef,
55
Boolean $use_enterprise_repo = false,
6-
$repo_location = undef,
7-
$proxy = undef,
8-
$proxy_username = undef,
9-
$proxy_password = undef,
6+
Optional[String] $repo_location = undef,
7+
Optional[String] $proxy = undef,
8+
Optional[String] $proxy_username = undef,
9+
Optional[String] $proxy_password = undef,
1010
) {
1111
case $::osfamily {
1212
'RedHat', 'Linux': {
13-
if $version != undef {
14-
$mongover = split($version, '[.]')
15-
}
16-
if ($repo_location != undef){
13+
if $repo_location != undef {
1714
$location = $repo_location
1815
$description = 'MongoDB Custom Repository'
19-
} elsif $use_enterprise_repo == true {
20-
$location = "https://repo.mongodb.com/yum/redhat/\$releasever/mongodb-enterprise/${mongover[0]}.${mongover[1]}/\$basearch/"
21-
$description = 'MongoDB Enterprise Repository'
22-
}
23-
elsif $version and (versioncmp($version, '3.0.0') >= 0) {
24-
$location = $::architecture ? {
25-
'x86_64' => "http://repo.mongodb.org/yum/redhat/${::operatingsystemmajrelease}/mongodb-org/${mongover[0]}.${mongover[1]}/x86_64/",
26-
default => undef
27-
}
28-
$description = 'MongoDB Repository'
29-
}
30-
else {
31-
$location = $::architecture ? {
32-
'x86_64' => 'http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/',
33-
'i686' => 'http://downloads-distro.mongodb.org/repo/redhat/os/i686/',
34-
'i386' => 'http://downloads-distro.mongodb.org/repo/redhat/os/i686/',
35-
default => undef
16+
} elsif $version == undef or versioncmp($version, '3.0.0') < 0 {
17+
fail('Package repositories for versions older than 3.0 are unsupported')
18+
} else {
19+
$mongover = split($version, '[.]')
20+
if $use_enterprise_repo {
21+
$location = "https://repo.mongodb.com/yum/redhat/\$releasever/mongodb-enterprise/${mongover[0]}.${mongover[1]}/\$basearch/"
22+
$description = 'MongoDB Enterprise Repository'
23+
} else {
24+
$location = "https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/${mongover[0]}.${mongover[1]}/\$basearch/"
25+
$description = 'MongoDB Repository'
3626
}
37-
$description = 'MongoDB/10gen Repository'
3827
}
3928

40-
class { 'mongodb::repo::yum': }
29+
contain mongodb::repo::yum
4130
}
4231

4332
'Debian': {
44-
if ($repo_location != undef){
33+
if $repo_location != undef {
4534
$location = $repo_location
46-
}
47-
elsif $version and (versioncmp($version, '3.0.0') >= 0) {
35+
} elsif $version == undef or versioncmp($version, '3.0.0') < 0 {
36+
fail('Package repositories for versions older than 3.0 are unsupported')
37+
} else {
4838
if $use_enterprise_repo == true {
49-
$repo_domain = 'repo.mongodb.com'
50-
$repo_path = 'mongodb-enterprise'
39+
$repo_domain = 'repo.mongodb.com'
40+
$repo_path = 'mongodb-enterprise'
5141
} else {
52-
$repo_domain = 'repo.mongodb.org'
53-
$repo_path = 'mongodb-org'
42+
$repo_domain = 'repo.mongodb.org'
43+
$repo_path = 'mongodb-org'
5444
}
5545

5646
$mongover = split($version, '[.]')
@@ -72,18 +62,9 @@
7262
default => '492EAFE8CD016A07919F1D2B9ECBEC467F0CEB10'
7363
}
7464
$key_server = 'hkp://keyserver.ubuntu.com:80'
75-
} else {
76-
$location = $::operatingsystem ? {
77-
'Debian' => 'http://downloads-distro.mongodb.org/repo/debian-sysvinit',
78-
'Ubuntu' => 'http://downloads-distro.mongodb.org/repo/ubuntu-upstart',
79-
default => undef
80-
}
81-
$release = 'dist'
82-
$repos = '10gen'
83-
$key = '492EAFE8CD016A07919F1D2B9ECBEC467F0CEB10'
84-
$key_server = 'hkp://keyserver.ubuntu.com:80'
8565
}
86-
class { 'mongodb::repo::apt': }
66+
67+
contain mongodb::repo::apt
8768
}
8869

8970
default: {

manifests/repo/yum.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# We try to follow/reproduce the instruction
44
# http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux/
55

6-
if($mongodb::repo::ensure == 'present' or $mongodb::repo::ensure == true) {
6+
if $mongodb::repo::ensure == 'present' or $mongodb::repo::ensure == true {
77
yumrepo { 'mongodb':
88
descr => $mongodb::repo::description,
99
baseurl => $mongodb::repo::location,

0 commit comments

Comments
 (0)