mongodb: Initial version of role
This commit is contained in:
parent
c7e0822900
commit
2cefd6d50d
5 changed files with 144 additions and 0 deletions
7
roles/mongodb/files/mongod.logrotate
Normal file
7
roles/mongodb/files/mongod.logrotate
Normal file
|
@ -0,0 +1,7 @@
|
|||
/var/log/mongodb/mongod.log
|
||||
missingok
|
||||
create 0640 mongod mongod
|
||||
postrotate
|
||||
/usr/bin/systemctl kill -s SIGUSR1 mongod.service >/dev/null 2>&1 || true
|
||||
endscript
|
||||
}
|
6
roles/mongodb/handlers/main.yml
Normal file
6
roles/mongodb/handlers/main.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
|
||||
- name: restart mongod
|
||||
ansible.builtin.service:
|
||||
name: mongod
|
||||
state: restarted
|
107
roles/mongodb/tasks/main.yml
Normal file
107
roles/mongodb/tasks/main.yml
Normal file
|
@ -0,0 +1,107 @@
|
|||
---
|
||||
|
||||
- name: create group
|
||||
ansible.builtin.group:
|
||||
name: mongod
|
||||
gid: 1006
|
||||
|
||||
- name: create user
|
||||
ansible.builtin.user:
|
||||
name: mongod
|
||||
comment: Service MongoDB
|
||||
createhome: false
|
||||
group: mongod
|
||||
home: /var/empty
|
||||
shell: /sbin/nologin
|
||||
uid: 1006
|
||||
|
||||
- name: enable repository
|
||||
ansible.builtin.yum_repository:
|
||||
name: mongodb
|
||||
baseurl: https://repo.mongodb.org/yum/redhat/8/mongodb-org/5.0/x86_64
|
||||
description: MongoDB
|
||||
gpgcheck: true
|
||||
gpgkey: https://www.mongodb.org/static/pgp/server-5.0.asc
|
||||
enabled: true
|
||||
|
||||
- name: install packages
|
||||
ansible.builtin.package:
|
||||
name: "{{ item }}"
|
||||
state: installed
|
||||
with_items:
|
||||
- mongodb-org-server
|
||||
- mongodb-org-shell
|
||||
|
||||
- name: set selinux file contexts on data directory
|
||||
community.general.sefcontext:
|
||||
path: "/export/mongodb(/.*)?"
|
||||
setype: mongod_var_lib_t
|
||||
|
||||
- name: create data directory
|
||||
ansible.builtin.file:
|
||||
path: /export/mongodb
|
||||
state: directory
|
||||
mode: 0700
|
||||
owner: mongod
|
||||
group: mongod
|
||||
setype: _default
|
||||
|
||||
- name: link data directory
|
||||
ansible.builtin.file:
|
||||
path: /srv/mongodb
|
||||
src: /export/mongodb
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
state: link
|
||||
follow: false
|
||||
|
||||
- name: create combined certificate/private key file
|
||||
ansible.builtin.shell:
|
||||
cmd: >-
|
||||
umask 077 &&
|
||||
/bin/cat \
|
||||
{{ tls_certs }}/{{ inventory_hostname }}.crt \
|
||||
{{ tls_private }}/{{ inventory_hostname }}.key > \
|
||||
{{ tls_private }}/mongodb.pem
|
||||
creates: "{{ tls_private }}/mongodb.pem"
|
||||
notify: restart mongod
|
||||
|
||||
- name: fix certificate/key file permissions
|
||||
ansible.builtin.file:
|
||||
path: "{{ tls_private }}/mongodb.pem"
|
||||
mode: 0640
|
||||
owner: root
|
||||
group: mongod
|
||||
|
||||
- name: configure logrotate
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/logrotate.d/mongod
|
||||
src: mongod.logrotate
|
||||
mode: 0644
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
|
||||
- name: configure startup options
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/sysconfig/mongod
|
||||
content: |
|
||||
OPTIONS="-f /etc/mongod.conf --logRotate reopen"
|
||||
mode: 0644
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
notify: restart mongod
|
||||
|
||||
- name: create configuration
|
||||
ansible.builtin.template:
|
||||
dest: /etc/mongod.conf
|
||||
src: mongod.conf.j2
|
||||
mode: 0644
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
notify: restart mongod
|
||||
|
||||
- name: enable service
|
||||
ansible.builtin.service:
|
||||
name: mongod
|
||||
state: started
|
||||
enabled: true
|
23
roles/mongodb/templates/mongod.conf.j2
Normal file
23
roles/mongodb/templates/mongod.conf.j2
Normal file
|
@ -0,0 +1,23 @@
|
|||
|
||||
systemLog:
|
||||
destination: file
|
||||
logAppend: true
|
||||
path: /var/log/mongodb/mongod.log
|
||||
|
||||
storage:
|
||||
dbPath: /srv/mongodb
|
||||
journal:
|
||||
enabled: true
|
||||
|
||||
processManagement:
|
||||
fork: true
|
||||
pidFilePath: /var/run/mongodb/mongod.pid
|
||||
timeZoneInfo: /usr/share/zoneinfo
|
||||
|
||||
net:
|
||||
port: 27017
|
||||
bindIpAll: true
|
||||
tls:
|
||||
mode: requireTLS
|
||||
certificateKeyFile: /etc/pki/tls/private/mongodb.pem
|
||||
CAFile: {{ tls_certs }}/ca.crt
|
|
@ -11,3 +11,4 @@ id user group notes
|
|||
1003 collab collab
|
||||
1004 docker docker docker registry
|
||||
1005 backup backup
|
||||
1006 mongod mongod
|
||||
|
|
Loading…
Add table
Reference in a new issue