Merge branch 'release/1.3.0'

This commit is contained in:
Kirill Klenov 2014-09-02 23:23:50 +01:00
commit 56bc464a4d
9 changed files with 74 additions and 138 deletions

View File

@ -4,6 +4,7 @@ python: "2.7"
before_install:
- sudo apt-get update -qq
- sudo apt-get install -qq python-apt python-pycurl
- sudo apt-get remove --purge -y mongodb-*
install:
- pip install ansible>=1.6.0
script:
@ -16,11 +17,11 @@ script:
- ansible-playbook -i inventory test.yml --connection=local --sudo
# Second run Idempotence test
# - >
# ansible-playbook -i inventory test.yml --connection=local --sudo
# | grep -q 'changed=0.*failed=0'
# && (echo 'Idempotence test: pass' && exit 0)
# || (echo 'Idempotence test: fail' && exit 1)
- >
ansible-playbook -i inventory test.yml --connection=local --sudo
| grep -q 'changed=0.*failed=0'
&& (echo 'Idempotence test: pass' && exit 0)
|| (echo 'Idempotence test: fail' && exit 1)
# Check for mongodb is running
- ps -ef | grep [m]ongod || exit 1
# - ps -ef | grep [m]ongod || exit 1

4
CONTRIBUTORS Normal file
View File

@ -0,0 +1,4 @@
Contributors:
* Kirill Klenov (http://klen.github.io/)
* Guillaume Dedrie (https://github.com/guillaumededrie)

View File

@ -11,29 +11,35 @@ Ansible role which manage [MongoDB](http://www.mongodb.org/)
#### Variables
```yaml
mongodb_enabled: yes
mongodb_packages:
- python-selinux
- python-pymongo
- mongodb-10gen
- mongodb-org
mongodb_conf:
auth: "false"
bind_ip: 127.0.0.1
cpu: "true"
dbpath: /var/lib/mongodb/
# diaglog: 0 # deprecated
logappend: "true"
logpath: /var/log/mongodb/mongod.log
noauth: "true"
nohints: "false"
nohttpinterface: "false"
nojournal: "true"
noprealloc: "false"
noscripting: "false"
notablescan: "false"
objcheck: "false"
port: 27017
quota: "false"
# replSet: "" # Set for enable replication
verbose: "true"
vvvv: "true"
# Configuration
mongodb_dbpath: /var/lib/mongodb
mongodb_logpath: /var/log/mongodb/mongodb.log
mongodb_port: 27017
mongodb_nojournal: true
mongodb_cpu: true
mongodb_verbose: true
mongodb_quota: false
mongodb_auth: false
mongodb_objcheck: false
mongodb_diaglog: 0
mongodb_nohints: false
mongodb_nohttpinterface: false
mongodb_noscripting: false
mongodb_notablescan: false
mongodb_noprealloc: false
mongodb_replSet: "" # Set for enable replication
# Log rotation
mongodb_logrotate: yes # Rotate mongodb logs.

View File

@ -6,23 +6,28 @@ mongodb_packages:
- python-pymongo
- mongodb-org
# Configuration
mongodb_dbpath: /var/lib/mongodb
mongodb_logpath: /var/log/mongodb/mongod.log
mongodb_port: 27017
mongodb_nojournal: true
mongodb_cpu: true
mongodb_verbose: true
mongodb_quota: false
mongodb_auth: false
mongodb_objcheck: false
mongodb_diaglog: 0
mongodb_nohints: false
mongodb_nohttpinterface: false
mongodb_noscripting: false
mongodb_notablescan: false
mongodb_noprealloc: false
mongodb_replSet: "" # Set for enable replication
mongodb_conf:
auth: "false"
bind_ip: 127.0.0.1
cpu: "true"
dbpath: /var/lib/mongodb/
# diaglog: 0 # deprecated
logappend: "true"
logpath: /var/log/mongodb/mongod.log
noauth: "true"
nohints: "false"
nohttpinterface: "false"
nojournal: "true"
noprealloc: "false"
noscripting: "false"
notablescan: "false"
objcheck: "false"
port: 27017
quota: "false"
# replSet: "" # Set for enable replication
verbose: "true"
vvvv: "true"
# Log rotation
mongodb_logrotate: yes # Rotate mongodb logs.

View File

@ -11,5 +11,8 @@ galaxy_info:
- name: Ubuntu
versions:
- all
- name: Debian
versions:
- wheezy
categories:
- database:nosql

View File

@ -3,8 +3,13 @@
- name: Add APT key
apt_key: url=http://docs.mongodb.org/10gen-gpg-key.asc id=7F0CEB10
- name: Add APT repository
- name: Add APT repository (Ubuntu)
apt_repository: repo='deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' update_cache=yes
when: ansible_distribution == 'Ubuntu'
- name: Add APT repository (Debian)
apt_repository: repo='deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' update_cache=yes
when: ansible_distribution == 'Debian'
- name: Install mongodb-org
apt: pkg={{item}}

View File

@ -5,5 +5,6 @@
- name: Ensure mongodb is started
service: name=mongod state=started
changed_when: False
- include: configure.yml

View File

@ -1,8 +1,8 @@
# This file was generated by Ansible for {{ ansible_fqdn }}
# Do NOT modify this file by hand!
{{mongodb_logpath}} {
{% for option in mongodb_logrotate_options %}
{{ mongodb_conf.logpath }} {
{% for option in mongodb_logrotate_options %}
{{ option }}
{% endfor %}
{% endfor %}
}

View File

@ -1,94 +1,5 @@
# mongodb.conf
# {{ ansible_managed }}
# This file was generated by Ansible for {{ ansible_fqdn }}
# Do NOT modify this file by hand!
# Where to store the data.
# Note: if you run mongodb as a non-root user (recommended) you may
# need to create and set permissions for this directory manually,
# e.g., if the parent directory isn't mutable by the mongodb user.
dbpath={{mongodb_dbpath}}
#where to log
logpath={{mongodb_logpath}}
logappend=true
port = {{mongodb_port}}
# Disables write-ahead journaling
nojournal = {{'true' if mongodb_nojournal else 'false'}}
# Enables periodic logging of CPU utilization and I/O wait
cpu = {{'true' if mongodb_cpu else 'false'}}
# Verbose logging output.
verbose = {{'true' if mongodb_verbose else 'false'}}
# Enable db quota management
quota = {{'true' if mongodb_quota else 'false'}}
# Turn on/off security. Off is currently the default
{% if mongodb_auth %}
auth = true
{% else %}
noauth = true
{% endif %}
# Inspect all client data for validity on receipt (useful for
# developing drivers)
objcheck = {{'true' if mongodb_objcheck else 'false'}}
# Set oplogging level where n is
# 0=off (default)
# 1=W
# 2=R
# 3=both
# 7=W+some reads
diaglog = {{mongodb_diaglog}}
# Ignore query hints
nohints = {{'true' if mongodb_nohints else 'false'}}
# Disable the HTTP interface (Defaults to localhost:28017).
nohttpinterface = {{'true' if mongodb_nohttpinterface else 'false'}}
# Turns off server-side scripting. This will result in greatly limited
# functionality
noscripting = {{'true' if mongodb_noscripting else 'false'}}
# Turns off table scans. Any query that would do a table scan fails.
notablescan = {{'true' if mongodb_notablescan else 'false'}}
# Disable data file preallocation.
noprealloc = {{'true' if mongodb_noprealloc else 'false'}}
# Specify .ns file size for new databases.
# nssize = <size>
# Accout token for Mongo monitoring server.
#mms-token = <token>
# Server name for Mongo monitoring server.
#mms-name = <server-name>
# Ping interval for Mongo monitoring server.
#mms-interval = <seconds>
# Replication Options
# in master/slave replicated mongo databases, specify here whether
# this is a slave or master
#slave = true
#source = master.example.com
# Slave only: specify a single database to replicate
#only = master.example.com
# or
#master = true
#source = slave.example.com
# in replica set configuration, specify the name of the replica set
{% if mongodb_replSet != "" %}
# replSet = setname
{% endif %}
{% for k, v in mongodb_conf.iteritems()|sort %}
{{ k }} = {{ v }}
{% endfor %}