Multiple changes for linting warnings

+ propert handling of mongodb_version variable
This commit is contained in:
Sergei Antipov 2019-05-27 15:00:59 -04:00
parent 5ee8162161
commit 606210c767
No known key found for this signature in database
GPG Key ID: B167B87787407B3A
11 changed files with 72 additions and 59 deletions

View File

@ -70,9 +70,8 @@ mongodb_security_keyfile: /etc/mongodb-keyfile # Specify path to keyfile with pa
mongodb_storage_dbpath: /data/db # Directory for datafiles
mongodb_storage_dirperdb: false # Use one directory per DB
# The storage engine for the mongod database. Available values:
# 'mmapv1', 'wiredTiger'
mongodb_storage_engine: "{{ 'mmapv1' if mongodb_version[0:3] == '3.0' else 'wiredTiger' }}"
# The storage engine for the mongod database
mongodb_storage_engine: "wiredTiger"
# mmapv1 specific options
mongodb_storage_quota_enforced: false # Limits each database to a certain number of files
mongodb_storage_quota_maxfiles: 8 # Number of quota files per DB

View File

@ -18,8 +18,8 @@ mongodb_manage_service: true
mongodb_disable_transparent_hugepages: false
mongodb_user: "{{ 'mongod' if ('RedHat' == ansible_os_family) else 'mongodb' }}"
mongodb_uid:
mongodb_gid:
mongodb_uid: ""
mongodb_gid: ""
mongodb_daemon_name: "{{ 'mongod' if ('mongodb-org' in mongodb_package) else 'mongodb' }}"
## net Options
@ -29,8 +29,8 @@ mongodb_net_ipv6: false # Enable IPv6 support (disabled
mongodb_net_maxconns: 65536 # Max number of simultaneous connections
mongodb_net_port: 27017 # Specify port number
mongodb_net_ssl: disabled # Enable or disable ssl connections
mongodb_net_ssl_mode: # Set the ssl mode (RequireSSL / preferSSL / AllowSSL / disabled)
mongodb_net_ssl_pemfile: # Location of the pemfile to use for ssl
mongodb_net_ssl_mode: "" # Set the ssl mode (RequireSSL / preferSSL / AllowSSL / disabled)
mongodb_net_ssl_pemfile: "" # Location of the pemfile to use for ssl
## processManagement Options
# Fork server process
@ -46,8 +46,7 @@ mongodb_security_keyfile: /etc/mongodb-keyfile # Specify path to keyfile with
mongodb_storage_dbpath: /data/db # Directory for datafiles
mongodb_storage_dirperdb: false # Use one directory per DB
# The storage engine for the mongod database. Available values:
# 'mmapv1', 'wiredTiger'
# The storage engine for the mongod database
mongodb_storage_engine: "wiredTiger"
# mmapv1 specific options
mongodb_storage_quota_enforced: false # Limits each database to a certain number of files
@ -66,7 +65,7 @@ mongodb_systemlog_logrotate: "rename" # Logro
mongodb_systemlog_path: /var/log/mongodb/{{ mongodb_daemon_name }}.log # Log file to send write to instead of stdout
## replication Options
mongodb_replication_replset: # Enable replication <setname>[/<optionalseedhostlist>]
mongodb_replication_replset: "" # Enable replication
mongodb_replication_replindexprefetch: "all" # specify index prefetching behavior (if secondary) [none|_id_only|all]
mongodb_replication_oplogsize: 1024 # specifies a maximum size in megabytes for the replication operation log

View File

@ -1,10 +0,0 @@
[Unit]
Description="Disable transparent hugepages"
Before=mongodb.service
[Service]
Type=oneshot
ExecStart=/opt/disable-transparent-hugepages.sh
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,21 @@
[Unit]
Description="Disable Transparent Hugepage before MongoDB boots"
#WARN: check service name on your system
# If you are using MongoDB Cloud, service name is "mongodb-mms-automation-agent.service"
Before=mongodb.service
[Service]
Type=oneshot
ExecStart=-/bin/bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
ExecStart=-/bin/bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'
ExecStart=-/bin/bash -c 'echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled'
ExecStart=-/bin/bash -c 'echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag'
ExecStart=-/bin/bash -c 'echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag'
ExecStart=-/bin/bash -c 'echo 0 > /sys/kernel/mm/redhat_transparent_hugepage/khugepaged/defrag'
ExecStart=-/bin/bash -c 'echo no > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag'
ExecStart=-/bin/bash -c 'echo no > /sys/kernel/mm/redhat_transparent_hugepage/khugepaged/defrag'
[Install]
#WARN: check service name on your system
# If you are using MongoDB Cloud, service name is "mongodb-mms-automation-agent.service"
RequiredBy=mongodb.service

View File

@ -1,5 +1,8 @@
---
- debug:
msg: "{{ mongodb_replication_replset }}"
- name: Create keyFile
copy:
dest: "{{ mongodb_security_keyfile }}"

View File

@ -1,22 +1,15 @@
- name: Install disable transparent hugepages helper
---
- name: Create disable transparent hugepages systemd service file
copy:
src: disable-transparent-hugepages.sh
dest: /opt/disable-transparent-hugepages.sh
owner: root
group: root
mode: 0700
- name: Create disable transparent hugepages init file
copy:
src: disable-transparent-hugepages.init
dest: /etc/systemd/system/disable-transparent-hugepages.init
src: disable-transparent-hugepages.service
dest: /etc/systemd/system/disable-transparent-hugepages.service
owner: root
group: root
mode: 0644
- name: Enable init file
- name: Enable disable-transparent-hugepages.service
systemd:
name: disable-transparent-hugepages
daemon-reload: yes
enabled: yes
daemon-reload: true
enabled: true
state: started

View File

@ -8,16 +8,19 @@
src: mongodb.repo.j2
dest: /etc/yum.repos.d/mongodb.repo
mode: 0644
with_items: "{{ mongodb_version[0:3] }}"
with_items: "{{ mongodb_major_version }}"
when: mongodb_package == 'mongodb-org'
- name: Install MongoDB and numactl packages
- name: Install MongoDB package
yum:
name:
- "{{ mongodb_package }}"
- numactl
name: "{{ mongodb_package }}{% if (mongodb_version | length > 3) %}={{ mongodb_version }}{% endif %}"
state: "{{ mongodb_package_state }}"
- name: Install numactl package
yum:
name: numactl
state: present
- name: Install PyMongo package
yum:
name: python-pymongo

View File

@ -18,18 +18,17 @@
- name: Fail when used wrong mongodb_version variable with Debian Stretch
fail:
msg: "mongodb_version variable should be '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 mongodb_version != '4.0'))
and ansible_distribution_release == 'stretch')
when:
- mongodb_package == 'mongodb-org'
- (mongodb_major_version != '3.6' and mongodb_major_version != '4.0')
- ansible_distribution_release == 'stretch'
- name: Fail when used wrong mongodb_version variable with Ubuntu 18.04
fail:
msg: "mongodb_version variable should be '4.0' or else mongodb_package should be 'mongodb' for Ubuntu 18.04"
when:
- mongodb_package == 'mongodb-org'
- mongodb_version != '4.0'
- mongodb_major_version != '4.0'
- ansible_distribution_release == "bionic"
- name: Fail when used wrong mongodb_version variable
@ -42,20 +41,23 @@
- name: Add APT repository
apt_repository:
repo: "{{ mongodb_repository[version_item] }}"
update_cache: yes
update_cache: true
with_items: "{{ mongodb_major_version }}"
loop_control:
loop_var: version_item
when: mongodb_package == 'mongodb-org'
- name: Install MongoDB and numactl packages
- name: Install MongoDB package
apt:
name:
- "{{ mongodb_package }}"
- numactl
name: "{{ mongodb_package }}{% if (mongodb_version | length > 3) %}={{ mongodb_version }}{% endif %}"
state: "{{ mongodb_package_state }}"
update_cache: true
- name: Install numactl package
apt:
name: numactl
state: present
- name: Add systemd configuration if present
copy: src=mongodb.service dest=/lib/systemd/system/mongodb.service owner=root group=root mode=0644
when: ansible_service_mgr == "systemd"

View File

@ -14,16 +14,19 @@
src: mongodb.repo.j2
dest: /etc/yum.repos.d/mongodb.repo
mode: 0644
with_items: "{{ mongodb_version[0:3] }}"
with_items: "{{ mongodb_major_version }}"
when: mongodb_package == 'mongodb-org'
- name: Install MongoDB package
yum:
name:
- "{{ mongodb_package }}"
- numactl
name: "{{ mongodb_package }}{% if (mongodb_version | length > 3) %}={{ mongodb_version }}{% endif %}"
state: "{{ mongodb_package_state }}"
- name: Install numactl package
yum:
name: numactl
state: present
- name: Install PyMongo package
yum:
name: python-pymongo

View File

@ -27,7 +27,7 @@
- name: Include replication configuration
include: replication.yml
when: mongodb_replication_replset | lenght > 0
when: mongodb_replication_replset | length > 0
tags: [mongodb]
- name: Check where admin user already exists
@ -101,7 +101,7 @@
login_host: "{{ mongodb_login_host|default('localhost') }}"
with_items:
- "{{ mongodb_oplog_users | default([]) }}"
when: ( mongodb_replication_replset | lenght > 0
when: ( mongodb_replication_replset | length > 0
and mongodb_security_authorization == 'enabled'
and mongodb_master is defined and mongodb_master )
no_log: false
@ -109,5 +109,5 @@
- name: Include MMS Agent configuration
include: mms-agent.yml
when: mongodb_mms_api_key | lenght > 0
when: mongodb_mms_api_key | length > 0
tags: [mongodb]

View File

@ -1,5 +1,5 @@
[mongodb-org-{{ mongodb_version }}]
name=MongoDB {{ mongodb_version }} Repository
[mongodb-org-{{ mongodb_major_version }}]
name=MongoDB {{ mongodb_major_version }} Repository
baseurl={{ mongodb_repository[item] }}
{% if mongodb_repository_gpgkey[item] is defined and mongodb_repository_gpgkey[item] != '' %}
gpgcheck=1