ansible-roles/roles/mongodb_server/tasks/install.yml

62 lines
1.5 KiB
YAML

---
- name: Remove versions from the base repo
yum:
name:
- mongodb
- mongodb-server
state: absent
tags: mongo
- name: Install MongoDB server and tools
yum: name={{ mongo_packages }}
tags: mongo
# We install from pip because pymongo available in repo for both EL7 and EL8 is too old
# it doesn't support CRAM-SHA-256 for example
# But pymongo 4 isn't yet working with ansible, so install latest 3.x version
- name: Install pymongo
pip: name=pymongo==3.12.3 state=present
tags: mongo
- name: Create data dir
file: path={{ mongo_db_path }} state=directory
tags: mongo
# Do it in two times so parent dir don't have restrictive permissions
- name: Set permissions on data dir
file: path={{ mongo_db_path }} state=directory owner=mongod group=mongod mode=700
tags: mongo
- name: Deploy pre/post backup scripts
template: src={{ item }}-backup.j2 dest=/etc/backup/{{ item }}.d/mongo mode=750
loop:
- pre
- post
tags: mongo
- name: Create systemd unit snippet dir
file: path=/etc/systemd/system/mongod.service.d state=directory
tags: mongo
- name: Customize systemd unit
copy:
content: |
[Service]
PrivateTmp=yes
ProtectSystem=full
ProtectHome=yes
Restart=on-failure
StartLimitInterval=0
RestartSec=30
dest: /etc/systemd/system/mongod.service.d/ansible.conf
register: mongo_unit
notify: restart mongod
tags: mongo
- name: Reload systemd
systemd: daemon_reload=True
when: mongo_unit.changed
tags: mongo