Instructions pour exécuter les scripts fournis

Étape 1 : Télécharger les scripts

Une fois les scripts fournis téléchargés sur votre machine hôte, vous devez les transférer vers votre machine virtuelle cible (Ubuntu 22.04 LTS) où vous allez les exécuter. Vous pouvez utiliser scp (secure copy) pour cela.

# Transférer les scripts vers la machine cible
scp install_base.sh deploy_minecraft.sh setup_backup.sh ansible@machine_ip:~

Remplacez machine_ip par l'adresse IP de votre machine virtuelle cible.

Connectez-vous ensuite à votre machine virtuelle cible :

ssh ansible@machine_ip

Puis déplacez-vous dans le répertoire où vous avez copié les scripts (soit le répertoire personnel de l'utilisateur ansible si vous avez suivi l'exemple ci-dessus) pour les rendre exécutables :

sudo chmod +x install_base.sh deploy_minecraft.sh setup_backup.sh

Étape 2 : Exécuter le script d'installation de base install_base.sh

Ce script installe Java, screen, wget, curl et prépare la structure de répertoires.

sudo ./install_base.sh

Durée estimée

2-3 minutes

Sortie attendue

=== Mise à jour des paquets ===
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
...

=== Installation de Java 17 ===
Reading package lists... Done
...

=== Installation de screen ===
...

=== Installation de wget ===
...

=== Installation de curl ===
...

=== Création du répertoire principal ===

=== Création du répertoire de backups ===

=== Configuration des limites système ===

=== Vérification de la version Java ===
openjdk version "17.0.x" 2023-xx-xx
...

✓ Installation de base terminée avec succès !

Vérification

# Vérifier que Java est installé
java -version

# Vérifier les répertoires créés
ls -la /opt/gameservers
ls -la /opt/backups/minecraft

# Vérifier les limites système
cat /etc/security/limits.d/minecraft.conf

Étape 3 : Déployer le premier serveur (Survival)

Commande

sudo ./deploy_minecraft.sh survival01 25565 1G 2G 20 survival

Explication des paramètres

Paramètre Valeur Signification
Nom du serveur survival01 Nom unique pour identifier ce serveur
Port 25565 Port d'écoute (port par défaut de Minecraft)
Mémoire minimum 1G RAM minimum allouée au serveur
Mémoire maximum 2G RAM maximum allouée au serveur
Joueurs max 20 Nombre maximum de joueurs simultanés
Mode de jeu survival Mode pour ce jeu. Les options sont : survival, creative, adventure, spectator

Durée estimée

1-2 minutes (téléchargement du JAR Minecraft)

Sortie attendue

=== Déploiement du serveur survival01 ===
Configuration:
  - Port: 25565
  - Mémoire: 1G à 2G
  - Joueurs max: 20
  - Mode de jeu: survival

=== Création de l'utilisateur système survival01 ===

=== Création des répertoires du serveur ===

=== Téléchargement du JAR Minecraft (version 1.20.1) ===

=== Acceptation de l'EULA ===

=== Génération du fichier server.properties ===

=== Création du service systemd ===

=== Activation et démarrage du service ===

✓ Serveur survival01 déployé avec succès !
  - Service: minecraft-survival01
  - Port: 25565
  - Statut: systemctl status minecraft-survival01

Vérification

# Vérifier que le service est actif
sudo systemctl status minecraft-survival01

# Résultat attendu :
# ● minecraft-survival01.service - Minecraft Server - survival01
#    Loaded: loaded
#    Active: active (running)

# Attendre 30 secondes que le serveur initialise
sleep 30

# Vérifier que le port écoute
sudo ss -tlnp | grep 25565

# Résultat attendu :
# LISTEN 0  50  *:25565  *:*  users:(("java",pid=12345,...))

Voir les logs du serveur

# Voir les logs en temps réel
sudo journalctl -u minecraft-survival01 -f
# Pour quitter, appuyez sur Ctrl+C

# Voir les 50 dernières lignes
sudo journalctl -u minecraft-survival01 -n 50

Note : Le serveur Minecraft prend environ 1-2 minutes à démarrer complètement. Vous verrez "Done!" dans les logs quand c'est prêt.

Étape 4 : Déployer le deuxième serveur (Creative)

Commande

sudo ./deploy_minecraft.sh creative01 25566 512M 1G 10 creative

Changements par rapport au serveur Survival

  • Nom : creative01 (différent de survival01)
  • Port : 25566 (différent de 25565, obligatoire !)
  • Mémoire : 512M-1G (moins que Survival car mode Creative moins gourmand)
  • Joueurs : 10 (moins de joueurs)
  • Mode : creative (mode créatif)

Vérification

# Vérifier le service
sudo systemctl status minecraft-creative01

# Attendre le démarrage
sleep 30

# Vérifier le port
sudo ss -tlnp | grep 25566

Étape 5 : Déployer le troisième serveur (Minigames)

Commande

sudo ./deploy_minecraft.sh minigames01 25567 2G 3G 30 adventure

Caractéristiques

  • Port : 25567 (encore différent)
  • Mémoire : 2G-3G (plus pour supporter plus de joueurs)
  • Joueurs : 30 (le plus grand des 3 serveurs)
  • Mode : adventure (pour les minigames)

Vérification

sudo systemctl status minecraft-minigames01
sleep 30
sudo ss -tlnp | grep 25567

Étape 6 : Vérifier les 3 serveurs simultanément

Vérifier tous les services

# Voir l'état de tous les services Minecraft
sudo systemctl status 'minecraft-*'

# Ou de manière plus compacte
sudo systemctl list-units 'minecraft-*'

Résultat attendu

minecraft-survival01.service   loaded active running Minecraft Server - survival01
minecraft-creative01.service   loaded active running Minecraft Server - creative01
minecraft-minigames01.service  loaded active running Minecraft Server - minigames01

Vérifier tous les ports

# Voir tous les ports Minecraft
sudo ss -tlnp | grep -E '2556[567]'

Résultat attendu

LISTEN 0  50  *:25565  *:*  users:(("java",pid=...))
LISTEN 0  50  *:25566  *:*  users:(("java",pid=...))
LISTEN 0  50  *:25567  *:*  users:(("java",pid=...))

Vérifier les utilisateurs système

# Voir les utilisateurs créés
grep gameservers /etc/passwd

Résultat attendu

survival01:x:999:999::/opt/gameservers/survival01:/bin/bash
creative01:x:998:998::/opt/gameservers/creative01:/bin/bash
minigames01:x:997:997::/opt/gameservers/minigames01:/bin/bash

Étape 7 : Configurer les backups automatiques

Pour le serveur Survival

sudo ./setup_backup.sh survival01 2 7

Paramètres :

  • survival01 : Nom du serveur à sauvegarder
  • 2 : Heure d'exécution (2h du matin)
  • 7 : Rétention (garder 7 jours de backups)

Pour le serveur Creative

sudo ./setup_backup.sh creative01 3 5

Paramètres :

  • Exécution à 3h du matin
  • Rétention de 5 jours

Pour le serveur Minigames

sudo ./setup_backup.sh minigames01 4 3

Paramètres :

  • Exécution à 4h du matin
  • Rétention de 3 jours

Vérification

# Voir les tâches cron configurées
sudo crontab -l

# Résultat attendu :
# 0 2 * * * /usr/local/bin/backup-survival01.sh >> /var/log/backup-survival01.log 2>&1
# 0 3 * * * /usr/local/bin/backup-creative01.sh >> /var/log/backup-creative01.log 2>&1
# 0 4 * * * /usr/local/bin/backup-minigames01.sh >> /var/log/backup-minigames01.log 2>&1

# Voir les scripts de backup créés
ls -la /usr/local/bin/backup-*.sh

Étape 8 : Tester un backup manuel

Exécuter un backup manuellement

# Exécuter le script de backup pour survival01
sudo /usr/local/bin/backup-survival01.sh

Sortie attendue

Début du backup de survival01
Backup créé: /opt/backups/minecraft/survival01/backup_20241125_143022.tar.gz
Nettoyage des backups de plus de 7 jours...
Backup terminé avec succès

Vérifier le backup

# Voir les backups créés
ls -lh /opt/backups/minecraft/survival01/

# Résultat attendu :
# -rw-r--r-- 1 root root 15M Nov 25 14:30 backup_20241125_143022.tar.gz

Faire le ménage

Afin d'avoir un environnement propre pour commencer votre travail avec Ansible, vous pouvez supprimer les serveurs Minecraft déployés et les backups créés durant ce test.

# 1. Arrêter tous les services
sudo systemctl stop minecraft-survival01 minecraft-creative01 minecraft-minigames01

# 2. Désactiver les services
sudo systemctl disable minecraft-survival01 minecraft-creative01 minecraft-minigames01

# 3. Supprimer les fichiers systemd
sudo rm /etc/systemd/system/minecraft-*.service
sudo systemctl daemon-reload

# 4. Supprimer les utilisateurs
sudo userdel -r survival01
sudo userdel -r creative01
sudo userdel -r minigames01

# 5. Supprimer les répertoires
sudo rm -rf /opt/gameservers
sudo rm -rf /opt/backups/minecraft

# 6. Supprimer les scripts de backup
sudo rm /usr/local/bin/backup-*.sh

# 7. Nettoyer les crons
sudo crontab -l | grep -v backup- | sudo crontab -