new version
Some checks failed
Some checks failed
This commit is contained in:
@@ -1,36 +1,55 @@
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed }}
|
||||
# Script de changement de version Minecraft
|
||||
|
||||
STAGING_DIR="{{ update_staging_dir }}"
|
||||
SERVER_DIR="{{ minecraft_server_dir }}"
|
||||
PREVIOUS_DIR="{{ spigot_previous_dir }}"
|
||||
DATE=$(date +%Y%m%d_%H%M%S)
|
||||
set -e
|
||||
|
||||
# Create previous directory if not exists
|
||||
mkdir -p "$PREVIOUS_DIR"
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "Usage: $0 <version>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Backup current server
|
||||
echo "Backing up current server..."
|
||||
tar -czf "$PREVIOUS_DIR/server_before_update_$DATE.tar.gz" \
|
||||
-C "$SERVER_DIR" \
|
||||
--exclude='world*' \
|
||||
--exclude='logs' \
|
||||
--exclude='crash-reports' \
|
||||
.
|
||||
NEW_VERSION=$1
|
||||
MINECRAFT_DIR="{{ minecraft_server_dir }}"
|
||||
TEMP_BUILD_DIR="{{ temp_build_dir }}"
|
||||
BACKUP_DIR="${MINECRAFT_DIR}/backup-$(date +%Y%m%d_%H%M%S)"
|
||||
|
||||
# Sync new version to server directory
|
||||
echo "Switching to new version..."
|
||||
rsync -av --delete \
|
||||
--exclude='world*' \
|
||||
--exclude='logs' \
|
||||
--exclude='crash-reports' \
|
||||
--exclude='plugins/*.yml' \
|
||||
--exclude='ops.json' \
|
||||
--exclude='whitelist.json' \
|
||||
--exclude='banned-*.json' \
|
||||
"$STAGING_DIR/" "$SERVER_DIR/"
|
||||
echo "Changement vers la version ${NEW_VERSION}"
|
||||
|
||||
# Set permissions
|
||||
chown -R {{ minecraft_user }}:{{ minecraft_group }} "$SERVER_DIR"
|
||||
# Vérification que le nouveau JAR existe
|
||||
if [ ! -f "${TEMP_BUILD_DIR}/spigot-${NEW_VERSION}.jar" ]; then
|
||||
echo "Erreur: Fichier spigot-${NEW_VERSION}.jar introuvable"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Version switch completed!"
|
||||
# Arrêt du serveur
|
||||
echo "Arrêt du serveur Minecraft..."
|
||||
systemctl stop minecraft || true
|
||||
sleep 10
|
||||
|
||||
# Sauvegarde de l'ancienne version
|
||||
echo "Sauvegarde de l'ancienne version..."
|
||||
mkdir -p "${BACKUP_DIR}"
|
||||
cp "${MINECRAFT_DIR}/spigot.jar" "${BACKUP_DIR}/spigot-old.jar" 2>/dev/null || true
|
||||
|
||||
# Copie de la nouvelle version
|
||||
echo "Installation de la nouvelle version..."
|
||||
cp "${TEMP_BUILD_DIR}/spigot-${NEW_VERSION}.jar" "${MINECRAFT_DIR}/spigot.jar"
|
||||
chown {{ minecraft_user }}:{{ minecraft_group }} "${MINECRAFT_DIR}/spigot.jar"
|
||||
|
||||
# Test de démarrage
|
||||
echo "Test de la nouvelle version..."
|
||||
systemctl start minecraft
|
||||
|
||||
# Vérification que le serveur démarre correctement
|
||||
sleep 30
|
||||
if systemctl is-active --quiet minecraft; then
|
||||
echo "Mise à jour réussie vers la version ${NEW_VERSION}"
|
||||
echo "Ancienne version sauvegardée dans: ${BACKUP_DIR}"
|
||||
else
|
||||
echo "Erreur: La nouvelle version ne démarre pas correctement"
|
||||
echo "Restauration de l'ancienne version..."
|
||||
systemctl stop minecraft || true
|
||||
cp "${BACKUP_DIR}/spigot-old.jar" "${MINECRAFT_DIR}/spigot.jar" 2>/dev/null || true
|
||||
systemctl start minecraft
|
||||
exit 1
|
||||
fi
|
Reference in New Issue
Block a user