check new version
This commit is contained in:
@@ -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 }}"
|
Reference in New Issue
Block a user