Skip to content

Commit

Permalink
Rip out 10gen repository support
Browse files Browse the repository at this point in the history
  • Loading branch information
ekohl committed Oct 7, 2018
1 parent 768902e commit 00e2851
Show file tree
Hide file tree
Showing 5 changed files with 130 additions and 149 deletions.
19 changes: 9 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
## Overview

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

## Module Description

Expand All @@ -38,7 +38,7 @@ instance, without sharding functionality.
* MongoDB service.
* MongoDB client.
* MongoDB sharding support (mongos)
* 10gen/mongodb apt/yum repository.
* MongoDB apt/yum repository.

### Beginning with MongoDB

Expand Down Expand Up @@ -71,20 +71,19 @@ class {'mongodb::mongos' :
}
```

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

```puppet
class {'mongodb::globals':
manage_package_repo => true,
version => '3.6',
}
-> class {'mongodb::client': }
-> class {'mongodb::server': }
```

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

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

#### Private classes
* `mongodb::repo`: Manage 10gen/MongoDB software repository
* `mongodb::repo::apt`: Manage Debian/Ubuntu apt 10gen/MongoDB repository
* `mongodb::repo::yum`: Manage Redhat/CentOS apt 10gen/MongoDB repository
* `mongodb::repo`: Manage MongoDB software repository
* `mongodb::repo::apt`: Manage Debian/Ubuntu apt MongoDB repository
* `mongodb::repo::yum`: Manage Redhat/CentOS yum MongoDB repository
* `mongodb::server::config`: Configures MongoDB configuration files
* `mongodb::server::install`: Install MongoDB software packages
* `mongodb::server::service`: Manages service
Expand Down
73 changes: 25 additions & 48 deletions manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@
$restart = true
$create_admin = false
$admin_username = 'admin'
$admin_roles = ['userAdmin', 'readWrite', 'dbAdmin', 'dbAdminAnyDatabase', 'readAnyDatabase',
'readWriteAnyDatabase', 'userAdminAnyDatabase', 'clusterAdmin', 'clusterManager', 'clusterMonitor',
'hostManager', 'root', 'restore']
$admin_roles = [
'userAdmin', 'readWrite', 'dbAdmin', 'dbAdminAnyDatabase', 'readAnyDatabase',
'readWriteAnyDatabase', 'userAdminAnyDatabase', 'clusterAdmin',
'clusterManager', 'clusterMonitor', 'hostManager', 'root', 'restore',
]
$handle_creds = true
$store_creds = false
$rcfile = "${::root_home}/.mongorc.js"
Expand Down Expand Up @@ -40,30 +42,20 @@
if $manage_package {
$user = pick($mongodb::globals::user, 'mongod')
$group = pick($mongodb::globals::group, 'mongod')
if ($version == undef) {
if $version == undef {
$server_package_name = pick($mongodb::globals::server_package_name, 'mongodb-org-server')
$client_package_name = pick($mongodb::globals::client_package_name, 'mongodb-org-shell')
$mongos_package_name = pick($mongodb::globals::mongos_package_name, 'mongodb-org-mongos')
$package_ensure = true
$package_ensure_client = true
$package_ensure_mongos = true
} else {
# check if the version is greater than 2.6
if $version and (versioncmp($version, '2.6.0') >= 0) {
$server_package_name = pick($mongodb::globals::server_package_name, 'mongodb-org-server')
$client_package_name = pick($mongodb::globals::client_package_name, 'mongodb-org-shell')
$mongos_package_name = pick($mongodb::globals::mongos_package_name, 'mongodb-org-mongos')
$package_ensure = $version
$package_ensure_client = $version
$package_ensure_mongos = $version
} else {
$server_package_name = pick($mongodb::globals::server_package_name, 'mongodb-10gen')
$client_package_name = pick($mongodb::globals::client_package_name, 'mongodb-10gen')
$mongos_package_name = pick($mongodb::globals::mongos_package_name, 'mongodb-10gen')
$package_ensure = $version
$package_ensure_client = $version #this is still needed in case they are only installing the client
$package_ensure_mongos = $version
}
$server_package_name = pick($mongodb::globals::server_package_name, 'mongodb-org-server')
$client_package_name = pick($mongodb::globals::client_package_name, 'mongodb-org-shell')
$mongos_package_name = pick($mongodb::globals::mongos_package_name, 'mongodb-org-mongos')
$package_ensure = $version
$package_ensure_client = $version
$package_ensure_mongos = $version
}
$service_name = pick($mongodb::globals::service_name, 'mongod')
$mongos_service_name = pick($mongodb::globals::mongos_service_name, 'mongos')
Expand All @@ -80,7 +72,7 @@
} else {
# RedHat/CentOS doesn't come with a prepacked mongodb
# so we assume that you are using EPEL repository.
if ($version == undef) {
if $version == undef {
$package_ensure = true
$package_ensure_client = true
$package_ensure_mongos = true
Expand Down Expand Up @@ -124,10 +116,10 @@
if $manage_package {
$user = pick($mongodb::globals::user, 'mongodb')
$group = pick($mongodb::globals::group, 'mongodb')
if $mongodb::globals::use_enterprise_repo == true {
$edition = 'enterprise'
if $mongodb::globals::use_enterprise_repo {
$edition = 'enterprise'
} else {
$edition = 'org'
$edition = 'org'
}
if ($version == undef) {
$server_package_name = pick($mongodb::globals::server_package_name, "mongodb-${edition}-server")
Expand All @@ -139,25 +131,14 @@
$service_name = pick($mongodb::globals::service_name, 'mongod')
$config = '/etc/mongod.conf'
} else {
# check if the version is greater than 2.6
if $version and (versioncmp($version, '2.6.0') >= 0) {
$server_package_name = pick($mongodb::globals::server_package_name, "mongodb-${edition}-server")
$client_package_name = pick($mongodb::globals::client_package_name, "mongodb-${edition}-shell")
$mongos_package_name = pick($mongodb::globals::mongos_package_name, "mongodb-${edition}-mongos")
$package_ensure = $version
$package_ensure_client = $version
$package_ensure_mongos = $version
$service_name = pick($mongodb::globals::service_name, 'mongod')
$config = '/etc/mongod.conf'
} else {
$server_package_name = pick($mongodb::globals::server_package_name, 'mongodb-10gen')
$client_package_name = pick($mongodb::globals::client_package_name, 'mongodb-10gen')
$mongos_package_name = pick($mongodb::globals::mongos_package_name, 'mongodb-10gen')
$package_ensure = $version
$package_ensure_client = $version #this is still needed in case they are only installing the client
$service_name = pick($mongodb::globals::service_name, 'mongodb')
$config = '/etc/mongodb.conf'
}
$server_package_name = pick($mongodb::globals::server_package_name, "mongodb-${edition}-server")
$client_package_name = pick($mongodb::globals::client_package_name, "mongodb-${edition}-shell")
$mongos_package_name = pick($mongodb::globals::mongos_package_name, "mongodb-${edition}-mongos")
$package_ensure = $version
$package_ensure_client = $version
$package_ensure_mongos = $version
$service_name = pick($mongodb::globals::service_name, 'mongod')
$config = '/etc/mongod.conf'
}
$mongos_service_name = pick($mongodb::globals::mongos_service_name, 'mongos')
$mongos_config = '/etc/mongodb-shard.conf'
Expand All @@ -166,11 +147,7 @@
$pidfilepath = pick($mongodb::globals::pidfilepath, '/var/run/mongod.pid')
$bind_ip = pick($mongodb::globals::bind_ip, ['127.0.0.1'])
} else {
# although we are living in a free world,
# I would not recommend to use the prepacked
# mongodb server on Ubuntu 12.04 or Debian 6/7,
# because its really outdated
if ($version == undef) {
if $version == undef {
$package_ensure = true
$package_ensure_client = true
$package_ensure_mongos = true
Expand Down
71 changes: 26 additions & 45 deletions manifests/repo.pp
Original file line number Diff line number Diff line change
Expand Up @@ -3,54 +3,44 @@
Variant[Enum['present', 'absent'], Boolean] $ensure = 'present',
Optional[String] $version = undef,
Boolean $use_enterprise_repo = false,
$repo_location = undef,
$proxy = undef,
$proxy_username = undef,
$proxy_password = undef,
Optional[String] $repo_location = undef,
Optional[String] $proxy = undef,
Optional[String] $proxy_username = undef,
Optional[String] $proxy_password = undef,
) {
case $::osfamily {
'RedHat', 'Linux': {
if $version != undef {
$mongover = split($version, '[.]')
}
if ($repo_location != undef){
if $repo_location != undef {
$location = $repo_location
$description = 'MongoDB Custom Repository'
} elsif $use_enterprise_repo == true {
$location = "https://repo.mongodb.com/yum/redhat/\$releasever/mongodb-enterprise/${mongover[0]}.${mongover[1]}/\$basearch/"
$description = 'MongoDB Enterprise Repository'
}
elsif $version and (versioncmp($version, '3.0.0') >= 0) {
$location = $::architecture ? {
'x86_64' => "http://repo.mongodb.org/yum/redhat/${::operatingsystemmajrelease}/mongodb-org/${mongover[0]}.${mongover[1]}/x86_64/",
default => undef
}
$description = 'MongoDB Repository'
}
else {
$location = $::architecture ? {
'x86_64' => 'http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/',
'i686' => 'http://downloads-distro.mongodb.org/repo/redhat/os/i686/',
'i386' => 'http://downloads-distro.mongodb.org/repo/redhat/os/i686/',
default => undef
} elsif $version == undef or versioncmp($version, '3.0.0') < 0 {
fail('Package repositories for versions older than 3.0 are unsupported')
} else {
$mongover = split($version, '[.]')
if $use_enterprise_repo {
$location = "https://repo.mongodb.com/yum/redhat/\$releasever/mongodb-enterprise/${mongover[0]}.${mongover[1]}/\$basearch/"
$description = 'MongoDB Enterprise Repository'
} else {
$location = "https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/${mongover[0]}.${mongover[1]}/\$basearch/"
$description = 'MongoDB Repository'
}
$description = 'MongoDB/10gen Repository'
}

class { 'mongodb::repo::yum': }
contain mongodb::repo::yum
}

'Debian': {
if ($repo_location != undef){
if $repo_location != undef {
$location = $repo_location
}
elsif $version and (versioncmp($version, '3.0.0') >= 0) {
} elsif $version == undef or versioncmp($version, '3.0.0') < 0 {
fail('Package repositories for versions older than 3.0 are unsupported')
} else {
if $use_enterprise_repo == true {
$repo_domain = 'repo.mongodb.com'
$repo_path = 'mongodb-enterprise'
$repo_domain = 'repo.mongodb.com'
$repo_path = 'mongodb-enterprise'
} else {
$repo_domain = 'repo.mongodb.org'
$repo_path = 'mongodb-org'
$repo_domain = 'repo.mongodb.org'
$repo_path = 'mongodb-org'
}

$mongover = split($version, '[.]')
Expand All @@ -72,18 +62,9 @@
default => '492EAFE8CD016A07919F1D2B9ECBEC467F0CEB10'
}
$key_server = 'hkp://keyserver.ubuntu.com:80'
} else {
$location = $::operatingsystem ? {
'Debian' => 'http://downloads-distro.mongodb.org/repo/debian-sysvinit',
'Ubuntu' => 'http://downloads-distro.mongodb.org/repo/ubuntu-upstart',
default => undef
}
$release = 'dist'
$repos = '10gen'
$key = '492EAFE8CD016A07919F1D2B9ECBEC467F0CEB10'
$key_server = 'hkp://keyserver.ubuntu.com:80'
}
class { 'mongodb::repo::apt': }

contain mongodb::repo::apt
}

default: {
Expand Down
2 changes: 1 addition & 1 deletion manifests/repo/yum.pp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# We try to follow/reproduce the instruction
# http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux/

if($mongodb::repo::ensure == 'present' or $mongodb::repo::ensure == true) {
if $mongodb::repo::ensure == 'present' or $mongodb::repo::ensure == true {
yumrepo { 'mongodb':
descr => $mongodb::repo::description,
baseurl => $mongodb::repo::location,
Expand Down
Loading

0 comments on commit 00e2851

Please sign in to comment.