From 0c8389baf9636585fc00c49b10a9c84224605706 Mon Sep 17 00:00:00 2001 From: Jeremy Lecour Date: Tue, 21 Nov 2017 16:51:19 +0100 Subject: [PATCH] Adapt mongodb role for Stretch Everything changes : * package source * service name * version --- mongodb/README.md | 8 ++-- mongodb/defaults/main.yml | 3 +- mongodb/handlers/main.yml | 6 ++- mongodb/tasks/main.yml | 48 ++++--------------- mongodb/tasks/main_jessie.yml | 33 +++++++++++++ mongodb/tasks/main_stretch.yml | 29 +++++++++++ .../{logrotate.j2 => logrotate_jessie.j2} | 4 +- mongodb/templates/logrotate_stretch.j2 | 15 ++++++ .../{mongod.conf.j2 => mongod_jessie.conf.j2} | 0 mongodb/templates/mongodb_stretch.conf.j2 | 39 +++++++++++++++ 10 files changed, 136 insertions(+), 49 deletions(-) create mode 100644 mongodb/tasks/main_jessie.yml create mode 100644 mongodb/tasks/main_stretch.yml rename mongodb/templates/{logrotate.j2 => logrotate_jessie.j2} (57%) create mode 100644 mongodb/templates/logrotate_stretch.j2 rename mongodb/templates/{mongod.conf.j2 => mongod_jessie.conf.j2} (100%) create mode 100644 mongodb/templates/mongodb_stretch.conf.j2 diff --git a/mongodb/README.md b/mongodb/README.md index 3aecf5c1..5362827c 100644 --- a/mongodb/README.md +++ b/mongodb/README.md @@ -1,6 +1,8 @@ -# mongodb-org +# mongodb -Install latest MongoDB from 10Gen repository. +Install MongoDB + +We use packages from 10Gen for Jessie and packages from Debian for Stretch. ## Tasks @@ -8,8 +10,6 @@ Everything is in the `tasks/main.yml` file. ## Available variables -* `mongodb_pidfile_path`: PID file path (default: `/var/lib/mongodb/mongod.lock`) -* `mongodb_logfile_path`: log file path (default: `/var/log/mongodb/mongod.log`) * `mongodb_port`: port to listen to (default: `27017`) * `mongodb_bind`: IP to bind to (default: `127.0.0.1`) diff --git a/mongodb/defaults/main.yml b/mongodb/defaults/main.yml index 6278f20f..273db2ab 100644 --- a/mongodb/defaults/main.yml +++ b/mongodb/defaults/main.yml @@ -1,5 +1,4 @@ --- -mongodb_pidfile_path: /var/lib/mongodb/mongod.lock -mongodb_logfile_path: /var/log/mongodb/mongod.log + mongodb_port: 27017 mongodb_bind: 127.0.0.1 diff --git a/mongodb/handlers/main.yml b/mongodb/handlers/main.yml index 46a307cc..62ff5f28 100644 --- a/mongodb/handlers/main.yml +++ b/mongodb/handlers/main.yml @@ -1,7 +1,11 @@ --- # handlers file for mongodb -- name: restart mongodb +- name: restart mongod service: name: mongod state: restarted +- name: restart mongodb + service: + name: mongodb + state: restarted diff --git a/mongodb/tasks/main.yml b/mongodb/tasks/main.yml index 0caee268..a13183c6 100644 --- a/mongodb/tasks/main.yml +++ b/mongodb/tasks/main.yml @@ -1,44 +1,12 @@ --- -- fail: - msg: only compatible with Debian 8 - when: - - ansible_distribution != "Debian" or ansible_distribution_release != "jessie" +# - fail: +# msg: only compatible with Debian 8 +# when: +# - ansible_distribution != "Debian" or ansible_distribution_release != "jessie" -# Attention à bien indiquer le protocole et le port, sinon le firewall ne laisse pas passer -- name: MongoDB public GPG Key - apt_key: - # url: https://www.mongodb.org/static/pgp/server-3.4.asc - data: "{{ lookup('file', 'server-3.4.asc') }}" +- include: main_jessie.yml + when: ansible_distribution_release == "jessie" -- name: enable APT sources list - apt_repository: - repo: deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4 main - state: present - filename: mongodb - update_cache: yes - -- name: Install packages - apt: - name: mongodb-org - state: installed - -- name: Custom configuration - template: - src: mongod.conf.j2 - dest: /etc/mongod.conf - force: yes - backup: no - notify: restart mongodb - -- name: Configure logrotate - template: - src: logrotate.j2 - dest: /etc/logrotate.d/mongodb - force: yes - backup: no - -- name: enable mongod service - service: - name: mongod - enabled: yes +- include: main_stretch.yml + when: ansible_distribution_major_version | version_compare('9', '>=') diff --git a/mongodb/tasks/main_jessie.yml b/mongodb/tasks/main_jessie.yml new file mode 100644 index 00000000..e9507191 --- /dev/null +++ b/mongodb/tasks/main_jessie.yml @@ -0,0 +1,33 @@ +--- + +- name: MongoDB public GPG Key + apt_key: + # url: https://www.mongodb.org/static/pgp/server-3.4.asc + data: "{{ lookup('file', 'server-3.4.asc') }}" + +- name: enable APT sources list + apt_repository: + repo: deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4 main + state: present + filename: mongodb + update_cache: yes + +- name: Install packages + apt: + name: mongodb-org + state: installed + +- name: Custom configuration + template: + src: mongod_jessie.conf.j2 + dest: "/etc/mongod.conf" + force: yes + backup: no + notify: restart mongod + +- name: Configure logrotate + template: + src: logrotate_jessie.j2 + dest: /etc/logrotate.d/mongodb + force: yes + backup: no diff --git a/mongodb/tasks/main_stretch.yml b/mongodb/tasks/main_stretch.yml new file mode 100644 index 00000000..45436920 --- /dev/null +++ b/mongodb/tasks/main_stretch.yml @@ -0,0 +1,29 @@ +--- + +- name: Install packages + apt: + name: "{{ item }}" + state: installed + with_items: + - mongodb + - mongo-tools + +- name: Custom configuration + template: + src: mongodb_stretch.conf.j2 + dest: "/etc/mongodb.conf" + force: yes + backup: no + notify: restart mongodb + +- name: enable service + service: + name: mongodb + enabled: yes + +- name: Configure logrotate + template: + src: logrotate_stretch.j2 + dest: /etc/logrotate.d/mongodb + force: yes + backup: no diff --git a/mongodb/templates/logrotate.j2 b/mongodb/templates/logrotate_jessie.j2 similarity index 57% rename from mongodb/templates/logrotate.j2 rename to mongodb/templates/logrotate_jessie.j2 index afd13378..1df4d429 100644 --- a/mongodb/templates/logrotate.j2 +++ b/mongodb/templates/logrotate_jessie.j2 @@ -1,6 +1,6 @@ # {{ ansible_managed }} -{{ mongodb_logfile_path }} { +/var/log/mongodb/mongod.log { daily missingok rotate 365 @@ -10,6 +10,6 @@ notifempty sharedscripts postrotate - kill -0 $(cat {{ mongodb_pidfile_path }}) && kill -USR1 $(cat {{ mongodb_pidfile_path }}) + pidof mongod | xargs kill -USR1 endscript } diff --git a/mongodb/templates/logrotate_stretch.j2 b/mongodb/templates/logrotate_stretch.j2 new file mode 100644 index 00000000..fe5926a0 --- /dev/null +++ b/mongodb/templates/logrotate_stretch.j2 @@ -0,0 +1,15 @@ +# {{ ansible_managed }} + +/var/log/mongodb/mongodb.log { + daily + missingok + rotate 365 + dateext + compress + delaycompress + notifempty + sharedscripts + postrotate + pidof mongod | xargs kill -USR1 + endscript +} diff --git a/mongodb/templates/mongod.conf.j2 b/mongodb/templates/mongod_jessie.conf.j2 similarity index 100% rename from mongodb/templates/mongod.conf.j2 rename to mongodb/templates/mongod_jessie.conf.j2 diff --git a/mongodb/templates/mongodb_stretch.conf.j2 b/mongodb/templates/mongodb_stretch.conf.j2 new file mode 100644 index 00000000..b61479bd --- /dev/null +++ b/mongodb/templates/mongodb_stretch.conf.j2 @@ -0,0 +1,39 @@ +# mongodb.conf - {{ ansible_managed }} + +# for documentation of all options, see: +# http://docs.mongodb.org/manual/reference/configuration-options/ + +# Where and how to store data. +storage: + dbPath: /var/lib/mongodb + journal: + enabled: true +# engine: +# mmapv1: +# wiredTiger: + +# where to write logging data. +systemLog: + destination: file + logRotate: reopen + logAppend: true + path: /var/log/mongodb/mongodb.log + +# network interfaces +net: + port: {{ mongodb_port }} + bindIp: {{ mongodb_bind }} + +#security: + +#operationProfiling: + +#replication: + +#sharding: + +## Enterprise-Only Options: + +#auditLog: + +#snmp: