check new version
This commit is contained in:
@@ -1,18 +0,0 @@
|
||||
---
|
||||
- name: Create backup directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
||||
loop:
|
||||
- "{{ backup_base_dir }}"
|
||||
- "{{ backup_daily_dir }}"
|
||||
- "{{ backup_weekly_dir }}"
|
||||
- "{{ backup_monthly_dir }}"
|
||||
|
||||
- name: Install rsync
|
||||
ansible.builtin.apt:
|
||||
name: rsync
|
||||
state: present
|
9
roles/04-backups/tasks/01-create-backup-dirs.yml
Normal file
9
roles/04-backups/tasks/01-create-backup-dirs.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: Create backup directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
||||
loop: "{{ backup_dirs }}"
|
6
roles/04-backups/tasks/02-install-rsync.yml
Normal file
6
roles/04-backups/tasks/02-install-rsync.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: Install rsync
|
||||
ansible.builtin.apt:
|
||||
name: rsync
|
||||
state: present
|
||||
when: ansible_os_family == "Debian"
|
@@ -1,17 +0,0 @@
|
||||
---
|
||||
- name: Create daily backup script
|
||||
ansible.builtin.template:
|
||||
src: backup-daily.sh.j2
|
||||
dest: "{{ minecraft_tools_dir }}/backup-daily.sh"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: Setup daily backup cron job
|
||||
ansible.builtin.cron:
|
||||
name: "Minecraft daily backup"
|
||||
minute: "0"
|
||||
hour: "{{ backup_daily_time.split(':')[0] }}"
|
||||
job: "{{ minecraft_tools_dir }}/backup-daily.sh"
|
||||
user: "{{ minecraft_user }}"
|
||||
state: present
|
16
roles/04-backups/tasks/03-configure-backup-script.yml
Normal file
16
roles/04-backups/tasks/03-configure-backup-script.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
- name: Create backup script
|
||||
ansible.builtin.template:
|
||||
src: backup.sh.j2
|
||||
dest: "{{ minecraft_base_dir }}/backup.sh"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: Create restore script
|
||||
ansible.builtin.template:
|
||||
src: restore.sh.j2
|
||||
dest: "{{ minecraft_base_dir }}/restore.sh"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
@@ -1,18 +0,0 @@
|
||||
---
|
||||
- name: Create weekly backup script
|
||||
ansible.builtin.template:
|
||||
src: backup-weekly.sh.j2
|
||||
dest: "{{ minecraft_tools_dir }}/backup-weekly.sh"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: Setup weekly backup cron job
|
||||
ansible.builtin.cron:
|
||||
name: "Minecraft weekly backup"
|
||||
minute: "0"
|
||||
hour: "{{ backup_weekly_time.split(':')[0] }}"
|
||||
weekday: "{{ backup_weekly_day }}"
|
||||
job: "{{ minecraft_tools_dir }}/backup-weekly.sh"
|
||||
user: "{{ minecraft_user }}"
|
||||
state: present
|
29
roles/04-backups/tasks/04-setup-cron.yml
Normal file
29
roles/04-backups/tasks/04-setup-cron.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
- name: Setup daily backup cron job
|
||||
ansible.builtin.cron:
|
||||
name: "Minecraft daily backup"
|
||||
user: "{{ minecraft_user }}"
|
||||
hour: "{{ backup_time_daily.split(':')[0] }}"
|
||||
minute: "{{ backup_time_daily.split(':')[1] }}"
|
||||
job: "{{ minecraft_base_dir }}/backup.sh daily"
|
||||
notify: reload cron service
|
||||
|
||||
- name: Setup weekly backup cron job
|
||||
ansible.builtin.cron:
|
||||
name: "Minecraft weekly backup"
|
||||
user: "{{ minecraft_user }}"
|
||||
hour: "{{ backup_time_weekly.split(':')[0] }}"
|
||||
minute: "{{ backup_time_weekly.split(':')[1] }}"
|
||||
weekday: "0"
|
||||
job: "{{ minecraft_base_dir }}/backup.sh weekly"
|
||||
notify: reload cron service
|
||||
|
||||
- name: Setup monthly backup cron job
|
||||
ansible.builtin.cron:
|
||||
name: "Minecraft monthly backup"
|
||||
user: "{{ minecraft_user }}"
|
||||
hour: "{{ backup_time_monthly.split(':')[0] }}"
|
||||
minute: "{{ backup_time_monthly.split(':')[1] }}"
|
||||
day: "1"
|
||||
job: "{{ minecraft_base_dir }}/backup.sh monthly"
|
||||
notify: reload cron service
|
@@ -1,18 +0,0 @@
|
||||
---
|
||||
- name: Create monthly backup script
|
||||
ansible.builtin.template:
|
||||
src: backup-monthly.sh.j2
|
||||
dest: "{{ minecraft_tools_dir }}/backup-monthly.sh"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: Setup monthly backup cron job
|
||||
ansible.builtin.cron:
|
||||
name: "Minecraft monthly backup"
|
||||
minute: "0"
|
||||
hour: "{{ backup_monthly_time.split(':')[0] }}"
|
||||
day: "{{ backup_monthly_day }}"
|
||||
job: "{{ minecraft_tools_dir }}/backup-monthly.sh"
|
||||
user: "{{ minecraft_user }}"
|
||||
state: present
|
26
roles/04-backups/tasks/05-restore-backup.ym
Normal file
26
roles/04-backups/tasks/05-restore-backup.ym
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
- name: Create restore script
|
||||
ansible.builtin.template:
|
||||
src: restore.sh.j2
|
||||
dest: "{{ minecraft_base_dir }}/restore.sh"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: Stop minecraft server before restore
|
||||
ansible.builtin.systemd:
|
||||
name: "{{ minecraft_service_name }}"
|
||||
state: stopped
|
||||
when: restore_backup_type is defined
|
||||
|
||||
- name: Execute restore
|
||||
ansible.builtin.command:
|
||||
cmd: "{{ minecraft_base_dir }}/restore.sh {{ restore_backup_type }} {{ restore_backup_date | default('latest') }}"
|
||||
become_user: "{{ minecraft_user }}"
|
||||
when: restore_backup_type is defined
|
||||
|
||||
- name: Start minecraft server after restore
|
||||
ansible.builtin.systemd:
|
||||
name: "{{ minecraft_service_name }}"
|
||||
state: started
|
||||
when: restore_backup_type is defined
|
@@ -1,38 +0,0 @@
|
||||
---
|
||||
- name: Create backup utility script
|
||||
ansible.builtin.copy:
|
||||
content: |
|
||||
#!/bin/bash
|
||||
# Backup utility functions
|
||||
|
||||
# Function to stop Minecraft server safely
|
||||
stop_minecraft() {
|
||||
if systemctl is-active --quiet minecraft; then
|
||||
echo "Stopping Minecraft server..."
|
||||
/usr/local/bin/mcrcon -H 127.0.0.1 -P {{ rcon_port }} -p "{{ rcon_password }}" "say Server backup starting in 30 seconds..."
|
||||
sleep 30
|
||||
/usr/local/bin/mcrcon -H 127.0.0.1 -P {{ rcon_port }} -p "{{ rcon_password }}" stop
|
||||
sleep 10
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to start Minecraft server
|
||||
start_minecraft() {
|
||||
if ! systemctl is-active --quiet minecraft; then
|
||||
echo "Starting Minecraft server..."
|
||||
systemctl start minecraft
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to clean old backups
|
||||
clean_old_backups() {
|
||||
local backup_dir=$1
|
||||
local retention_days=$2
|
||||
|
||||
find "$backup_dir" -type f -mtime +$retention_days -delete
|
||||
find "$backup_dir" -type d -empty -delete
|
||||
}
|
||||
dest: "{{ minecraft_tools_dir }}/backup-functions.sh"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
@@ -1,8 +0,0 @@
|
||||
---
|
||||
- name: Create restore backup script
|
||||
ansible.builtin.template:
|
||||
src: restore-backup.sh.j2
|
||||
dest: "{{ minecraft_tools_dir }}/restore-backup.sh"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
@@ -1,18 +1,16 @@
|
||||
---
|
||||
- name: Include backup directories creation tasks
|
||||
ansible.builtin.include_tasks: 01-create-backup-directories.yml
|
||||
- name: Include create backup directories tasks
|
||||
ansible.builtin.include_tasks: 01-create-backup-dirs.yml
|
||||
|
||||
- name: Include daily backup setup tasks
|
||||
ansible.builtin.include_tasks: 02-setup-daily-backup.yml
|
||||
- name: Include install rsync tasks
|
||||
ansible.builtin.include_tasks: 02-install-rsync.yml
|
||||
|
||||
- name: Include weekly backup setup tasks
|
||||
ansible.builtin.include_tasks: 03-setup-weekly-backup.yml
|
||||
- name: Include configure backup script tasks
|
||||
ansible.builtin.include_tasks: 03-configure-backup-script.yml
|
||||
|
||||
- name: Include monthly backup setup tasks
|
||||
ansible.builtin.include_tasks: 04-setup-monthly-backup.yml
|
||||
- name: Include setup cron tasks
|
||||
ansible.builtin.include_tasks: 04-setup-cron.yml
|
||||
|
||||
- name: Include backup scripts setup tasks
|
||||
ansible.builtin.include_tasks: 05-setup-backup-scripts.yml
|
||||
|
||||
- name: Include restore scripts setup tasks
|
||||
ansible.builtin.include_tasks: 06-setup-restore-scripts.yml
|
||||
- name: Include restore backup tasks
|
||||
ansible.builtin.include_tasks: 05-restore-backup.yml
|
||||
when: restore_backup | default(false)
|
Reference in New Issue
Block a user