Initial commit
This commit is contained in:
20
roles/mongo_backup/files/mongo-backup.service
Normal file
20
roles/mongo_backup/files/mongo-backup.service
Normal 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
|
||||
8
roles/mongo_backup/files/mongo-backup.timer
Normal file
8
roles/mongo_backup/files/mongo-backup.timer
Normal file
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Weekly push Mongo backup to S3
|
||||
|
||||
[Timer]
|
||||
OnCalendar=weekly Asia/Taipei
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
4
roles/mongo_backup/handlers/main.yml
Normal file
4
roles/mongo_backup/handlers/main.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
- name: Upgrade packages
|
||||
community.general.pacman:
|
||||
upgrade: true
|
||||
45
roles/mongo_backup/tasks/main.yml
Normal file
45
roles/mongo_backup/tasks/main.yml
Normal 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
|
||||
2
roles/mongo_backup/templates/secret
Normal file
2
roles/mongo_backup/templates/secret
Normal file
@@ -0,0 +1,2 @@
|
||||
MONGO_USERNAME=root
|
||||
MONGO_PASSWORD={{ mongodb_root_password }}
|
||||
Reference in New Issue
Block a user