107 lines
2.4 KiB
YAML
107 lines
2.4 KiB
YAML
---
|
|
|
|
- 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
|