File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 6262 roles :
6363 - git-mirrors
6464
65- - name : Deploy our PostgreSQL database hosts
65+ - name : Deploy our database hosts
6666 hosts : databases
6767 roles :
6868 - postgres
6969 - prometheus-postgres-exporter
70+ - mongodb
7071
7172- name : Deploy our LDAP server environment to the LDAP host
7273 hosts : ldap
Original file line number Diff line number Diff line change 1+ # mongodb
2+
3+ This role deploys MongoDB using podman quadlets.
4+
5+ The container starts as root, but drops privileges after startup.
Original file line number Diff line number Diff line change 1+ ---
2+ - name : Restart mongodb
3+ ansible.builtin.service :
4+ name : mongodb
5+ state : restarted
6+ tags :
7+ - role::mongodb
Original file line number Diff line number Diff line change 1+ ---
2+ dependencies :
3+ - podman
Original file line number Diff line number Diff line change 1+ ---
2+ - name : Template quadlet services
3+ ansible.builtin.template :
4+ src : mongodb.{{ item }}.j2
5+ dest : /etc/containers/systemd/mongodb.{{ item }}
6+ owner : root
7+ group : root
8+ mode : 0o444
9+ register : mongodb_units
10+ tags :
11+ - role::mongodb
12+ notify :
13+ - Restart mongodb
14+ loop :
15+ - container
16+ - image
17+ - volume
18+
19+ - name : Start and enable the quadlet
20+ ansible.builtin.service :
21+ name : mongodb.service
22+ daemon_reload : " {{ mongodb_units is changed }}"
23+ state : started
24+ enabled : true
25+ tags :
26+ - role::mongodb
Original file line number Diff line number Diff line change 1+ # {{ ansible_managed }}
2+
3+ [Unit]
4+ Description = Mongo NoSQL (NonSensical Query Language) Server
5+
6+ [Container]
7+ Image = mongodb.image
8+ Pull = missing
9+ Volume = mongodb.volume:/data/db
10+ NoNewPrivileges = true
11+ PublishPort = 27017:27017
12+
13+ [Service]
14+ # Resource control
15+ CPUQuota = 20%
16+ MemoryMax = 900M
17+ TasksMax = 200
18+
19+ # Sandboxing
20+ NoNewPrivileges = true
21+ PrivateDevices = true
22+ ProtectHome = true
23+ ProtectKernelLogs = true
24+ LockPersonality = true
25+ MemoryDenyWriteExecute = true
26+ ProtectKernelModules = true
27+ ProtectSystem = true
28+ PrivateMounts = true
29+ RestrictRealtime = true
30+ RestrictSUIDSGID = true
31+ UMask = 0077
32+
33+ [Install]
34+ WantedBy = network-online.target
35+
36+ # vim: ft=dosini.jinja2:
Original file line number Diff line number Diff line change 1+ # {{ ansible_managed }}
2+
3+ [Unit]
4+ Description = Mongo NoSQL (NonSensical Query Language) Server image
5+ After = network-online.target
6+
7+ [Image]
8+ Image = docker.io/library/mongo:4.4
9+
10+ # vim: ft=dosini.jinja2:
Original file line number Diff line number Diff line change 1+ # {{ ansible_managed }}
2+
3+ [Unit]
4+ Description = Mongo NoSQL (NonSensical Query Language) volume
5+
6+ [Volume]
7+
8+ # vim: ft=dosini.jinja2:
You can’t perform that action at this time.
0 commit comments