C'est une histoire qu'un débutant âgé de moins d'un an et demi pour la première fois dans GCP a construit un serveur Micra pour étudier.
--Construire un serveur Micra avec GCE --Contrôler l'instance depuis Discord
--VM instance 1 (serveur Micra) --VM instance 2 (discord bot)
Quoi qu'il en soit, rien ne démarrera à moins que vous ne créiez une instance pour le serveur Micra. En gros, nous le créerons en nous référant aux documents officiels suivants. La documentation officielle de GCP était assez facile à comprendre, ce qui était d'une grande aide pour les débutants.
Configurer le serveur Minecraft sur Compute Engine (https://cloud.google.com/solutions/gaming/minecraft-server?hl=ja#automate_start_up_and_shutdown_procedures)
Pour l'instance, je l'ai créée avec ce paramètre.
article | Contenu |
---|---|
Nom de l'instance | mineserver |
Région | us-central1 |
zone | us-central1-f |
séries | N1 |
Type de machine | n1-standard-2 |
Disque de démarrage | CentOS 7 |
Préemptif | Efficacité |
IP externe de l'interface réseau | Créer une adresse IP |
** Limites d'instances préemptives ** L'avantage de l'activation des instances préemptives est simplement que le coût de l'instance est un tiers du coût normal. Concernant le serveur Micra cette fois, je pensais qu'il n'y avait presque pas de situation où je restais connecté, j'ai donc choisi une instance préemptive avec la priorité de réduire considérablement le coût. Comme mentionné dans l'objectif, je pense qu'il n'y a pas beaucoup d'obstacle car l'instance est lancée uniquement lorsque vous jouez au jeu depuis Discord et s'arrête lorsqu'elle est terminée.
Veuillez vous référer au document officiel pour plus de détails sur les inconvénients.
Limiter les instances préemptives (https://cloud.google.com/compute/docs/instances/preemptible#understanding_the_preemption_process)
** Ajouter un disque persistant ** Créez des disques supplémentaires comme suit.
article | Contenu |
---|---|
Nom du disque | minecraft-disk |
Type de disque | Type persistant SSD |
Type de Source | Type vide |
Taille | 50GB |
Fondamentalement, nous procéderons sur la base du document officiel décrit ci-dessus, mais Officiellement, le système d'exploitation utilise Debian et j'utilise CentOS, donc certaines commandes sont différentes. Puisque les différences sont décrites, nous vous serions reconnaissants de bien vouloir le lire avec le document officiel.
** Configurer Java Runtime Environment (JRE) **
#Tout d'abord, mettez à jour vers la dernière version du package existant
$ yum update
#Installation JRE
$ yum install -y default-jre-headless
** Téléchargez et installez le serveur Micra **
Officiellement, il est téléchargé en utilisant wget, mais centOS n'a pas wget
par défaut, alors installez-le.
Pour le lien de téléchargement du serveur Micra, copiez le dernier lien de la page de téléchargement de minecraft et remplacez-le.
#Installez wget
$ yum install wget
#Installation du serveur Micra
$ wget https://launcher.mojang.com/v1/objects/f1a0073671057f01aa843443fef34330281333ce/server.jar
** Premier démarrage du serveur ** La commande ci-dessous dit "-Xms1G -Xmx3G", mais c'est celle qui alloue la mémoire. Il peut être ajusté selon les spécifications de la machine.
#Exécutez le serveur Micra
$ java -Xms1G -Xmx3G -d64 -jar server.jar nogui
** Conditions générales d'utilisation du serveur Micra ** Après le premier démarrage, plusieurs fichiers seront créés dans le même répertoire, et il y a un fichier appelé ʻeula.txt` dedans, alors ouvrez-le avec la commande suivante et éditez-le. Si vous acceptez les termes du CLUF, changez la valeur de «eula» de «false» à «true», enregistrez et quittez.
$ vi eula.txt
#Ci-dessous eula.Contenu du txt
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Thu Nov 21 18:02:54 UTC 2019
eula=true <--Changer ici de "faux" à "vrai"
À ce stade, la configuration minimale requise est terminée.
Cependant, si vous laissez ceci tel quel, si vous vous déconnectez du serveur, la session sera coupée et le serveur Micra s'arrêtera.
Utilisez screen
pour résoudre ce problème.
Tout d'abord, installez screen
.
#installation d'écran
$ yum install screen
Exécutez le serveur Micra en utilisant l'écran installé. Veuillez vous référer à la page suivante pour savoir comment utiliser les commandes d'écran.
#Exécutez le serveur Micra à l'aide de screen
$ screen -S mcs java -Xms1G -Xmx3G -d64 -jar server.jar nogui
** Autoriser les clients à se connecter au serveur Micra **
Comme indiqué dans la documentation officielle, le serveur Micra utilise 25565 comme port d'écoute par défaut, créez donc une règle de pare-feu pour l'autoriser.
Si vous voulez changer le port, vous pouvez le changer en éditant server.properties
dans le même répertoire.
De plus, server.properties
vous permet de modifier divers autres paramètres du serveur Micra.
** Automatisez le démarrage et l'arrêt de l'instance ** Si vous prévoyez d'arrêter le serveur régulièrement, ajoutez des scripts de démarrage et d'arrêt à votre instance pour automatiser les démarrages et les arrêts fréquemment utilisés.
Cela est nécessaire lors du contrôle ultérieur de l'instance depuis Discord, alors définissez-le maintenant.
Dans la section Instance de VM-> Cliquez sur Nom de l'instance-> Modifier-> Métadonnées personnalisées de la console GCP, ajoutez une nouvelle clé nommée startup-script
et ajoutez le script suivant à la valeur ] Copiez sur le terrain.
#!/bin/bash
mount /dev/disk/by-id/google-minecraft-disk /home/minecraft
(crontab -l | grep -v -F "/home/minecraft/backup.sh" ; echo "0 */4 * * * /home/minecraft/backup.sh")| crontab -
cd /home/minecraft
screen -d -m -S mcs java -Xms1G -Xmx3G -d64 -jar server.jar nogui
Pour automatiser la procédure d'arrêt, ajoutez une autre clé, shutdown-script
, et copiez le script suivant dans son champ Valeur.
#!/bin/bash
/home/minecraft/backup.sh
sudo screen -r mcs -X stuff '/stop\n'
Je jouais à Micra et je me suis soudainement écrasé et les données se sont envolées. Quelle triste chose j'ai eu plusieurs fois. Il est essentiel de faire des sauvegardes régulières pour un tel cas.
Fondamentalement, procédez selon l'élément «Planifier une sauvegarde régulière» dans le document officiel.
Tout d'abord, créez un nouveau bucket régional Cloud Storage conformément à la documentation officielle. Remplacez la région où vous créez le seau si vous le souhaitez. Je l'ai créé dans ʻasia-northest1 (Tokyo) `.
Créez un script de sauvegarde et exécutez-le régulièrement en utilisant cron
.
#Créer un script de sauvegarde
$ vi /home/minecraft/backup.sh
#Sous la sauvegarde.contenu de sh
#!/bin/bash
screen -r mcs -X stuff '/save-all\n/save-off\n'
/usr/bin/gsutil cp -R ${BASH_SOURCE%/*}/world gs://[BUCKET_NAME]/$(date "+%Y%m%d-%H%M%S")-world
screen -r mcs -X stuff '/save-on\n'
#Modifier les autorisations du script créé
$ chmod 755 /home/minecraft/backup.sh
Pour planifier un travail cron
, vous devez écrire dans crontab
.
$ crontab -e
#Ci-dessous le contenu de crontab
0 */4 * * * /home/minecraft/backup.sh
Avec les paramètres ci-dessus, backup.sh
sera exécuté toutes les 4 heures.
Selon le document officiel, cela prend 4 heures, mais quand je m'écrase et que je récupère, il est mentalement difficile de revenir à l'état précédent jusqu'à 4 heures, alors je l'ai fait toutes les heures (rires).
** Enregistrez des sauvegardes pour des générations ** Si vous continuez à sauvegarder, les fichiers deviendront énormes, donc configuré pour ne conserver qu'un certain nombre de générations. «Cloud Storage» a une fonction appelée gestion du cycle de vie des objets. En termes simples, il supprime automatiquement les anciennes sauvegardes.
Pour les paramètres, procédez selon l'élément «Supprimer automatiquement les anciennes sauvegardes» dans le document officiel. Articles avec des paramètres différents du document officiel en 1 point Dans la section Sélectionner la condition de l'objet, sélectionnez Âge. J'ai changé mon âge à 3 jours au lieu de 7 jours. Dans mon cas, je fais des sauvegardes toutes les heures, donc si je pars 24 fois par jour, et si je pars pendant 7 jours, 168 sauvegardes resteront. Comme prévu, il a été fixé à 3 jours en tenant compte du coût.
Comment ça s'est passé? C'est la fin de la construction du serveur Micra. La prochaine fois, nous rendrons possible le contrôle du serveur Micra créé cette fois à partir de Discord.
La prochaine fois-> Une histoire sur l'exploitation d'une instance GCP à partir de Discord
Recommended Posts