Init role.

This commit is contained in:
Kirill Klenov 2014-06-04 19:03:58 +04:00
parent d98d1a78ef
commit 1c29f2b317
6 changed files with 145 additions and 0 deletions

25
defaults/main.yml Normal file
View File

@ -0,0 +1,25 @@
---
mongodb_enabled: yes
mongodb_packages:
- python-selinux
- python-pymongo
- mongodb-10gen
# 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

4
tasks/configure.yml Normal file
View File

@ -0,0 +1,4 @@
---
- name: Configure mongodb
template: src=mongodb.conf.j2 dest=/etc/mongodb.conf owner=root group=root mode=0644

11
tasks/install.deb.yml Normal file
View File

@ -0,0 +1,11 @@
---
- name: Add APT key
apt_key: url=http://docs.mongodb.org/10gen-gpg-key.asc id=7F0CEB10
- name: Add APT repository
apt_repository: repo='deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' update_cache=yes
- name: Install mongodb-org
apt: pkg={{item}}
with_items: mongodb_packages

5
tasks/main.yml Normal file
View File

@ -0,0 +1,5 @@
---
- include: mongodb.yml
when: mongodb_enabled
tags: [mongodb]

6
tasks/mongodb.yml Normal file
View File

@ -0,0 +1,6 @@
---
- include: install.deb.yml
when: ansible_os_family == 'Debian'
- include: configure.yml

94
templates/mongodb.conf.j2 Normal file
View File

@ -0,0 +1,94 @@
# mongodb.conf
# 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 %}