check new version
Some checks failed
Ansible Minecraft Server CI/CD / lint (push) Failing after 21s
Ansible Minecraft Server CI/CD / test (push) Has been skipped
Ansible Minecraft Server CI/CD / deploy (push) Has been skipped

This commit is contained in:
2025-08-27 07:59:19 +02:00
parent 7a2ccb537b
commit 9ea9ac7254
125 changed files with 2696 additions and 1511 deletions

View File

@@ -1,8 +1,8 @@
---
- name: Create version backup directory
ansible.builtin.file:
path: "{{ spigot_backup_dir }}"
state: directory
- name: Create version switch script
ansible.builtin.template:
src: version-switch.sh.j2
dest: "{{ minecraft_base_dir }}/switch_version.sh"
owner: "{{ minecraft_user }}"
group: "{{ minecraft_group }}"
mode: '0755'
@@ -13,39 +13,22 @@
state: stopped
- name: Backup current version
ansible.builtin.shell: |
BACKUP_NAME="version_backup_$(date +%Y%m%d_%H%M%S)"
mkdir -p "{{ spigot_backup_dir }}/$BACKUP_NAME"
cp -r "{{ minecraft_server_dir }}"/* "{{ spigot_backup_dir }}/$BACKUP_NAME/"
ansible.builtin.command:
cmd: |
tar -czf {{ spigot_previous_dir }}/backup_$(date +%Y%m%d_%H%M%S).tar.gz \
-C {{ minecraft_server_dir }} .
become_user: "{{ minecraft_user }}"
- name: Copy world data to new version
ansible.builtin.shell: |
if [ -d "{{ minecraft_server_dir }}/world" ]; then
cp -r "{{ minecraft_server_dir }}/world" "{{ spigot_new_version_dir }}/"
fi
if [ -d "{{ minecraft_server_dir }}/world_nether" ]; then
cp -r "{{ minecraft_server_dir }}/world_nether" "{{ spigot_new_version_dir }}/"
fi
if [ -d "{{ minecraft_server_dir }}/world_the_end" ]; then
cp -r "{{ minecraft_server_dir }}/world_the_end" "{{ spigot_new_version_dir }}/"
fi
if [ -d "{{ minecraft_server_dir }}/plugins" ]; then
cp -r "{{ minecraft_server_dir }}/plugins" "{{ spigot_new_version_dir }}/"
fi
become_user: "{{ minecraft_user }}"
- name: Replace server directory with new version
ansible.builtin.shell: |
rm -rf "{{ minecraft_server_dir }}.old"
mv "{{ minecraft_server_dir }}" "{{ minecraft_server_dir }}.old"
mv "{{ spigot_new_version_dir }}" "{{ minecraft_server_dir }}"
- name: Switch to new version
ansible.builtin.command:
cmd: "{{ minecraft_base_dir }}/switch_version.sh"
become_user: "{{ minecraft_user }}"
register: switch_result
- name: Update version file
ansible.builtin.copy:
content: "{{ minecraft_version }}"
dest: "{{ spigot_current_version_file }}"
dest: "{{ current_version_file }}"
owner: "{{ minecraft_user }}"
group: "{{ minecraft_group }}"
mode: '0644'
@@ -54,30 +37,13 @@
ansible.builtin.systemd:
name: minecraft
state: started
notify: "restart minecraft after version change"
- name: Wait for server to start
- name: Verify server is running
ansible.builtin.wait_for:
port: "{{ minecraft_port }}"
delay: 30
timeout: 300
port: "{{ server_port }}"
timeout: 60
state: started
- name: Verify server is running new version
ansible.builtin.shell: |
sleep 10
/usr/local/bin/mcrcon -H 127.0.0.1 -P {{ rcon_port }} -p "{{ rcon_password }}" "version"
register: version_check
failed_when: false
- name: Display version switch result
- name: Display update result
ansible.builtin.debug:
msg:
- "Version switch completed successfully"
- "Server response: {{ version_check.stdout | default('No response') }}"
- "Old version backed up to: {{ minecraft_server_dir }}.old"
- name: Clean up old version after successful switch
ansible.builtin.file:
path: "{{ minecraft_server_dir }}.old"
state: absent
when: version_check.rc == 0
msg: "Successfully updated to Spigot {{ minecraft_version }}"