Initial commit
Some checks failed
Ansible Playbook lint & deploy / ansible-lint (push) Successful in 12s
Ansible Playbook lint & deploy / run-ansible-mongo (push) Failing after 6s
Ansible Playbook lint & deploy / run-ansible-postgres (push) Failing after 7s

This commit is contained in:
2024-12-03 00:56:20 +00:00
commit 32d815621d
29 changed files with 465 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
[Unit]
Description=Mongodb auto backup daemon
After=network.target
[Service]
Type=oneshot
User=mongodb
Group=mongodb
WorkingDirectory=/var/lib/mongodb
EnvironmentFile=/etc/mongo-backup/secret
ExecStart=/usr/bin/sh -c 'mongodump -u "$MONGO_USERNAME" -p "$MONGO_PASSWORD" -j 2'
ExecStart=/usr/bin/sh -c 'tar -cf "dump-$(date -I).tar.xz" -I "xz -T2" dump'
ExecStart=/usr/bin/sh -c 'mcli --config-dir .mcli cp dump-*.tar.xz s3/konchin-mongo-backup/'
ExecStart=/usr/bin/sh -c 'rm -r dump dump-*.tar.xz'
StandardError=journal
StandardOutput=journal
StandardInput=null
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,8 @@
[Unit]
Description=Weekly push Mongo backup to S3
[Timer]
OnCalendar=weekly Asia/Taipei
[Install]
WantedBy=timers.target

View File

@@ -0,0 +1,4 @@
---
- name: Upgrade packages
community.general.pacman:
upgrade: true

View File

@@ -0,0 +1,45 @@
---
- name: Update packages
community.general.pacman:
update_cache: true
- name: Install minio cli
community.general.pacman:
pkg:
- minio-client
notify: Upgrade packages
- name: Flush handlers
ansible.builtin.meta: flush_handlers
- name: Install mongo-backup.service
ansible.builtin.copy:
src: mongo-backup.service
dest: /etc/systemd/system/mongo-backup.service
mode: '0644'
owner: root
group: root
- name: Install mongo-backup.timer
ansible.builtin.copy:
src: mongo-backup.timer
dest: /etc/systemd/system/mongo-backup.timer
mode: '0644'
owner: root
group: root
- name: Install etc directory
ansible.builtin.file:
path: /etc/mongo-backup/
state: directory
mode: '0755'
owner: root
group: root
- name: Install credential
ansible.builtin.template:
src: secret
dest: /etc/mongo-backup/secret
mode: '0600'
owner: root
group: root
- name: Start and enable mongo-backup.timer
ansible.builtin.systemd_service:
name: mongo-backup.timer
state: started
enabled: true

View File

@@ -0,0 +1,2 @@
MONGO_USERNAME=root
MONGO_PASSWORD={{ mongodb_root_password }}