From 659299e01fadc831665c0a31f3f7993fa6cc95d5 Mon Sep 17 00:00:00 2001 From: Florian Mauduit Date: Wed, 3 Oct 2018 12:41:39 +0200 Subject: [PATCH] Add suport for MongoDB v4.0 --- README.md | 16 ++++++++-------- defaults/main.yml | 3 ++- tasks/install.debian.yml | 15 ++++++++------- tasks/install.redhat.yml | 4 ++-- vars/Debian.yml | 1 + vars/RedHat.yml | 2 ++ vars/Ubuntu.yml | 1 + 7 files changed, 24 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 49336b4..0c384b5 100644 --- a/README.md +++ b/README.md @@ -10,15 +10,15 @@ Ansible role which manages [MongoDB](http://www.mongodb.org/). MongoDB support matrix: -| Distribution | < MongoDB 3.0 | MongoDB 3.2 | MongoDB 3.4 | MongoDB 3.6 | +| Distribution | < MongoDB 3.0 | MongoDB 3.2 | MongoDB 3.4 | MongoDB 3.6 | MongoDB 4.0 | | ------------ |:-------------:|:-----------:|:-----------:|:-----------:| -| Ubuntu 14.04 | :no_entry: | :white_check_mark:| :white_check_mark:| :white_check_mark:| -| Ubuntu 16.04 | :no_entry: | :white_check_mark:| :white_check_mark:| :white_check_mark:| -| Ubuntu 18.04 | :no_entry: | :x:| :x:| :white_check_mark:| -| Debian 8.x | :no_entry: | :white_check_mark:| :white_check_mark:| :white_check_mark:| -| Debian 9.x | :no_entry: | :white_check_mark:| :x:| :white_check_mark:| -| RHEL 6.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark:| -| RHEL 7.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark:| +| Ubuntu 14.04 | :no_entry: | :white_check_mark:| :white_check_mark:| :white_check_mark:| :white_check_mark:| +| Ubuntu 16.04 | :no_entry: | :white_check_mark:| :white_check_mark:| :white_check_mark:| :white_check_mark:| +| Ubuntu 18.04 | :no_entry: | :x:| :x:| :white_check_mark:| :white_check_mark:| +| Debian 8.x | :no_entry: | :white_check_mark:| :white_check_mark:| :white_check_mark:| :white_check_mark:| +| Debian 9.x | :no_entry: | :white_check_mark:| :x:| :white_check_mark:| :white_check_mark:| +| RHEL 6.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark:| :white_check_mark:| +| RHEL 7.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark:| :white_check_mark:| - :white_check_mark: - fully tested, should works fine - :interrobang: - maybe works, not tested diff --git a/defaults/main.yml b/defaults/main.yml index c0a94fc..7e3b564 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -7,9 +7,10 @@ mongodb_apt_key_id: "3.2": "EA312927" "3.4": "0C49F3730359A14518585931BC711F9BA15703C6" "3.6": "2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5" + "4.0": "9DA31620334BD75D9DCB49F368818C72E52529D4" mongodb_pymongo_from_pip: true # Install latest PyMongo via PIP or package manager -mongodb_pymongo_pip_version: 3.6.1 +mongodb_pymongo_pip_version: 3.7.1 mongodb_user_update_password: "on_create" # MongoDB user password update default policy mongodb_manage_service: true diff --git a/tasks/install.debian.yml b/tasks/install.debian.yml index ded7089..8c2ab41 100644 --- a/tasks/install.debian.yml +++ b/tasks/install.debian.yml @@ -9,7 +9,7 @@ - name: Establish some role-related facts set_fact: mongodb_is_systemd: "{{ sbin_init.stat.islnk is defined and sbin_init.stat.islnk }}" - mongodb_major_version: "{{ mongodb_version[0:3] }}" + mongodb_major_version: "{{ mongodb_version[0:4] }}" - name: Add APT key apt_key: @@ -19,21 +19,22 @@ - name: Fail when used wrong mongodb_version variable with Debian Stretch fail: - msg: "mongodb_version variable should be '3.2' or '3.6' for Debian Stretch" + msg: "mongodb_version variable should be '3.2' or '3.6' or '4.0' for Debian Stretch" when: (mongodb_package == 'mongodb-org' and (mongodb_version is not defined or mongodb_repository[mongodb_major_version] is not defined - or mongodb_version != '3.6') and ansible_distribution_release == 'stretch') + or (mongodb_version != '3.6' and mongodb_version != '4.0')) + and (ansible_distribution_release == 'stretch' and ansible_distribution_release == 'jessie')) - name: Fail when used wrong mongodb_version variable with Ubuntu 18.04 fail: - msg: "mongodb_version variable should be '3.6' and mongodb_package should be 'mongodb' for Ubuntu 18.04" - when: ((mongodb_package == 'mongodb-org' or mongodb_version != '3.6') - and ansible_distribution_release == "bionic") + msg: "mongodb_version variable should be '3.6' or '4.0' and mongodb_package should be 'mongodb' for Ubuntu 18.04" + when: ((mongodb_package == 'mongodb-org' or (mongodb_version != '3.6' and mongodb_version != '4.0')) + and ansible_distribution_release == "bionic") - name: Fail when used wrong mongodb_version variable fail: - msg: "mongodb_version variable should be '3.2', '3.4' or '3.6'" + msg: "mongodb_version variable should be '3.2', '3.4', '3.6' or '4.0'" when: (mongodb_package == 'mongodb-org' and (mongodb_version is not defined or mongodb_repository[mongodb_major_version] is not defined)) diff --git a/tasks/install.redhat.yml b/tasks/install.redhat.yml index 8c596dd..0095ab5 100644 --- a/tasks/install.redhat.yml +++ b/tasks/install.redhat.yml @@ -2,7 +2,7 @@ - name: Establish some role-related facts set_fact: - mongodb_major_version: "{{ mongodb_version[0:3] }}" + mongodb_major_version: "{{ mongodb_version[0:4] }}" - name: Install EPEL release repository package: @@ -14,7 +14,7 @@ src: mongodb.repo.j2 dest: /etc/yum.repos.d/mongodb.repo mode: 0644 - with_items: "{{ mongodb_version[0:3] }}" + with_items: "{{ mongodb_version[0:4] }}" when: mongodb_package == 'mongodb-org' - name: Install MongoDB package diff --git a/vars/Debian.yml b/vars/Debian.yml index cc8b28e..58041ad 100644 --- a/vars/Debian.yml +++ b/vars/Debian.yml @@ -3,3 +3,4 @@ mongodb_repository: "3.2": "deb http://repo.mongodb.org/apt/debian {{ ansible_distribution_release }}/mongodb-org/3.2 main" "3.4": "deb http://repo.mongodb.org/apt/debian {{ ansible_distribution_release }}/mongodb-org/3.4 main" "3.6": "deb http://repo.mongodb.org/apt/debian {{ ansible_distribution_release }}/mongodb-org/3.6 main" + "4.0": "deb http://repo.mongodb.org/apt/debian {{ ansible_distribution_release }}/mongodb-org/4.0 main" diff --git a/vars/RedHat.yml b/vars/RedHat.yml index bc633cd..87229e1 100644 --- a/vars/RedHat.yml +++ b/vars/RedHat.yml @@ -4,10 +4,12 @@ mongodb_repository: "3.2": "https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/$basearch/" "3.4": "https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/$basearch/" "3.6": "https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/$basearch/" + "4.0": "https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/$basearch/" mongodb_repository_gpgkey: "3.2": "https://www.mongodb.org/static/pgp/server-3.2.asc" "3.4": "https://www.mongodb.org/static/pgp/server-3.4.asc" "3.6": "https://www.mongodb.org/static/pgp/server-3.6.asc" + "4.0": "https://www.mongodb.org/static/pgp/server-4.0.asc" mongodb_pidfile_path: "{{ '/var/run/mongodb/mongod.pid' if ('mongodb-org' in mongodb_package) else '' }}" diff --git a/vars/Ubuntu.yml b/vars/Ubuntu.yml index e9e2e58..f4596a3 100644 --- a/vars/Ubuntu.yml +++ b/vars/Ubuntu.yml @@ -3,3 +3,4 @@ mongodb_repository: "3.2": "deb http://repo.mongodb.org/apt/ubuntu {{ ansible_distribution_release }}/mongodb-org/3.2 multiverse" "3.4": "deb http://repo.mongodb.org/apt/ubuntu {{ ansible_distribution_release }}/mongodb-org/3.4 multiverse" "3.6": "deb http://repo.mongodb.org/apt/ubuntu {{ ansible_distribution_release }}/mongodb-org/3.6 multiverse" + "4.0": "deb http://repo.mongodb.org/apt/ubuntu {{ ansible_distribution_release }}/mongodb-org/4.0 multiverse"