129 lines
2.9 KiB
YAML
129 lines
2.9 KiB
YAML
---
|
|
|
|
- name: Install requirements
|
|
ansible.builtin.apt:
|
|
name: "{{ item }}"
|
|
state: present
|
|
with_items:
|
|
- gnupg
|
|
- python3-pip
|
|
tags: install,conf,users
|
|
|
|
- name: Installing pymongo via pip
|
|
ansible.builtin.pip:
|
|
name:
|
|
- pymongo
|
|
tags: install,conf,users
|
|
|
|
- name: Deploy service to disable THP at boot
|
|
ansible.builtin.copy:
|
|
src: disable-thp.service
|
|
dest: /etc/systemd/system/disable-thp.service
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
notify: Systemd daemon_reload
|
|
tags: install
|
|
|
|
- name: Enable disable-thp service
|
|
ansible.builtin.systemd:
|
|
name: disable-thp
|
|
enabled: true
|
|
masked: false
|
|
tags: install
|
|
|
|
- name: Deploy sysctl conf (max_map_count, swappiness)
|
|
ansible.builtin.copy:
|
|
src: local.conf
|
|
dest: /etc/sysctl.d/local.conf
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
tags: install,conf
|
|
|
|
- name: Get mongodb.com gpg key
|
|
ansible.builtin.get_url:
|
|
url: https://pgp.mongodb.com/server-7.0.asc
|
|
dest: /usr/share/keyrings/mongodb-server-7.0.asc
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
tags: install
|
|
|
|
- name: Add mongodb.com repository
|
|
ansible.builtin.apt_repository:
|
|
repo: "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.asc] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/7.0 main"
|
|
state: present
|
|
tags: install
|
|
|
|
- name: Install mongodb
|
|
ansible.builtin.apt:
|
|
name: mongodb-org
|
|
state: present
|
|
tags: install
|
|
|
|
- name: Holding mongodb packages
|
|
ansible.builtin.dpkg_selections:
|
|
name: "{{ item }}"
|
|
selection: hold
|
|
with_items:
|
|
- mongodb-org
|
|
- mongodb-org-database
|
|
- mongodb-org-server
|
|
- mongodb-mongosh
|
|
- mongodb-org-mongos
|
|
- mongodb-org-tools
|
|
tags: install
|
|
|
|
- name: Ensure permissions are correct on /var/lib/mongodb
|
|
ansible.builtin.file:
|
|
path: /var/lib/mongodb
|
|
owner: mongodb
|
|
group: mongodb
|
|
mode: "0755"
|
|
tags: install
|
|
|
|
- name: Start and enable mongodb service
|
|
ansible.builtin.systemd:
|
|
name: mongod
|
|
state: started
|
|
enabled: true
|
|
tags: install
|
|
|
|
- name: Deploy conf file
|
|
ansible.builtin.template:
|
|
src: mongod.conf.j2
|
|
dest: /etc/mongod.conf
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
tags: install,conf
|
|
notify: Restart mongodb
|
|
|
|
- name: Deploy keyFile for auth in cluster
|
|
ansible.builtin.template:
|
|
src: mongo-keyfile.j2
|
|
dest: /etc/mongo-keyfile
|
|
owner: mongodb
|
|
group: mongodb
|
|
mode: "0400"
|
|
tags: install
|
|
|
|
- name: Deploy logrotate conf file
|
|
ansible.builtin.copy:
|
|
src: logrotate.conf
|
|
dest: /etc/logrotate.d/mongodb
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
tags: install
|
|
|
|
- name: Create replicaset
|
|
community.mongodb.mongodb_replicaset:
|
|
login_user: "admin"
|
|
login_password: "{{ lookup('community.hashi_vault.hashi_vault', 'ansible/data/mongodb/{{ env }}/admin:password') }}"
|
|
login_host: localhost
|
|
replica_set: "{{ mongodb_replicaset_name }}"
|
|
members: "{{ mongodb_replicaset_members }}"
|
|
tags: install
|