[PYTHON] Eine Geschichte über einen GCP-Anfänger, der versucht, mit GCE einen Micra-Server aufzubauen

Einführung

Es ist eine Geschichte, dass ein Anfänger, der zum ersten Mal in GCP weniger als ein halbes Jahr alt ist, einen Micra-Server zum Lernen gebaut hat.

Ziel

Verfassung

Diagramm

マイクラサーバ構成図.png

Verfahren

1. Erstellen Sie eine Instanz für den Micra-Server

Auf jeden Fall wird nichts gestartet, es sei denn, Sie erstellen eine Instanz für den Micra-Server. Grundsätzlich werden wir es unter Bezugnahme auf die folgenden offiziellen Dokumente erstellen. Die offizielle Dokumentation von GCP war ziemlich leicht zu verstehen, was für Anfänger eine große Hilfe war.

Richten Sie den Minecraft-Server in der Compute Engine ein (https://cloud.google.com/solutions/gaming/minecraft-server?hl=ja#automate_start_up_and_shutdown_procedures).

Für die Instanz habe ich es mit dieser Einstellung erstellt.

Artikel Inhalt
Instanzname mineserver
Region us-central1
Zone us-central1-f
Serie N1
Maschinentyp n1-standard-2
Boot-Diskette CentOS 7
Präventiv Wirksamkeit
Externe IP der Netzwerkschnittstelle Erstellen Sie eine IP-Adresse

** Zulässige Instanzlimits ** Der Vorteil der Aktivierung vorab zulässiger Instanzen besteht einfach darin, dass die Kosten der Instanz ein Drittel der normalen Kosten betragen. In Bezug auf den Micra-Server dachte ich diesmal, dass es fast keine Situation gab, in der ich angemeldet war, und entschied mich daher für eine präemptible Instanz mit der Priorität, die Kosten erheblich zu senken. Wie im Ziel erwähnt, gibt es meines Erachtens nicht viele Hindernisse, da die Instanz nur gestartet wird, wenn das Spiel aus Zwietracht gespielt wird, und gestoppt wird, wenn es beendet ist.

Einzelheiten zu den Nachteilen entnehmen Sie bitte dem offiziellen Dokument.

Begrenzen Sie vorab zulässige Instanzen (https://cloud.google.com/compute/docs/instances/preemptible#understanding_the_preemption_process)

** Persistente Festplatte hinzufügen ** Erstellen Sie weitere Discs wie folgt.

Artikel Inhalt
Datenträgername minecraft-disk
Festplattentyp Persistenter SSD-Typ
Quelle Typ Leerer Typ
Größe 50GB

2. Installieren Sie den Micra-Server und führen Sie ihn aus

Grundsätzlich werden wir auf der Grundlage des oben beschriebenen offiziellen Dokuments fortfahren, aber Offiziell verwendet das Betriebssystem Debian und ich verwende CentOS, daher sind einige der Befehle unterschiedlich. Da die Unterschiede beschrieben sind, würden wir uns freuen, wenn Sie sie zusammen mit dem offiziellen Dokument lesen könnten.

** Java Runtime Environment (JRE) einrichten **

#Aktualisieren Sie zunächst auf die neueste Version des vorhandenen Pakets
$ yum update

#JRE-Installation
$ yum install -y default-jre-headless

** Micra Server herunterladen und installieren ** Offiziell wird es mit wget heruntergeladen, aber centOS hat standardmäßig kein "wget", also installieren Sie es. Kopieren Sie für den Download-Link des Micra-Servers den neuesten Link von der Download-Seite von minecraft und ersetzen Sie ihn.

#Installieren Sie wget
$ yum install wget

#Installation des Micra-Servers
$ wget https://launcher.mojang.com/v1/objects/f1a0073671057f01aa843443fef34330281333ce/server.jar

** Erster Start des Servers ** Der folgende Befehl sagt "-Xms1G -Xmx3G", aber dieser ordnet Speicher zu. Sie kann gemäß den Maschinenspezifikationen eingestellt werden.


#Führen Sie den Micra-Server aus
$ java -Xms1G -Xmx3G -d64 -jar server.jar nogui

** Nutzungsbedingungen für den Micra Server ** Nach dem ersten Start werden mehrere Dateien im selben Verzeichnis erstellt, und es befindet sich eine Datei mit dem Namen "eula.txt". Öffnen Sie sie daher mit dem folgenden Befehl und bearbeiten Sie sie. Wenn Sie mit den EULA-Bedingungen einverstanden sind, ändern Sie den Wert von "eula" von "false" in "true", speichern und beenden Sie ihn.


$ vi eula.txt

#Unterhalb von Eula.Inhalt von 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  <--Ändern Sie hier von "falsch" zu "wahr"

Zu diesem Zeitpunkt ist die minimal erforderliche Einrichtung abgeschlossen. Wenn Sie dies jedoch unverändert lassen und sich vom Server abmelden, wird die Sitzung unterbrochen und der Micra-Server wird gestoppt. Verwenden Sie screen, um dieses Problem zu lösen. Installieren Sie zuerst screen.

#Bildschirminstallation
$ yum install screen

Führen Sie den Micra-Server mit dem installierten Bildschirm aus. Auf der folgenden Seite erfahren Sie, wie Sie die Bildschirmbefehle verwenden.

Verwendung des Linux-Bildschirmbefehls

#Führen Sie den Micra-Server über den Bildschirm aus
$ screen -S mcs java -Xms1G -Xmx3G -d64 -jar server.jar nogui

** Ermöglichen Sie Clients, sich beim Micra-Server anzumelden **

Wie in der offiziellen Dokumentation angegeben, verwendet der Micra-Server 25565 als Standard-Überwachungsport. Erstellen Sie daher eine Firewall-Regel, um dies zuzulassen. Wenn Sie den Port ändern möchten, können Sie ihn ändern, indem Sie "server.properties" im selben Verzeichnis bearbeiten. Darüber hinaus können Sie mit "server.properties" verschiedene andere Einstellungen des Micra-Servers ändern.

Serverkonfigurationsdatei (server.properties)

** Start und Stopp der Instanz automatisieren ** Wenn Sie den Server regelmäßig herunterfahren möchten, fügen Sie Ihrer Instanz Start- und Herunterfahrskripts hinzu, um häufig verwendetes Starten und Stoppen zu automatisieren.

Wenn Sie die Instanz später über Zwietracht steuern möchten, müssen Sie sie jetzt einstellen.

Fügen Sie im Abschnitt VM-Instanz-> Klicken Sie auf Instanzname-> Bearbeiten-> Benutzerdefinierte Metadaten der GCP-Konsole einen neuen Schlüssel mit dem Namen "Startskript" hinzu und fügen Sie dem Wert das folgende Skript hinzu ] In das Feld kopieren.


#!/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

Um das Herunterfahren zu automatisieren, fügen Sie einen weiteren Schlüssel hinzu, "shutdown-script", und kopieren Sie das folgende Skript in das Feld "Wert".

#!/bin/bash
/home/minecraft/backup.sh
sudo screen -r mcs -X stuff '/stop\n'

3. Richten Sie eine regelmäßige Sicherung ein und führen Sie sie aus

Ich spielte Micra und stürzte plötzlich ab und die Daten flogen weg. Was für eine traurige Sache, die ich schon mehrmals hatte. Für einen solchen Fall ist es wichtig, regelmäßig Backups zu erstellen.

Gehen Sie grundsätzlich gemäß dem Punkt "Regelmäßige Sicherung planen" im offiziellen Dokument vor.

Erstellen Sie zunächst einen neuen regionalen Cloud Storage-Bucket gemäß der offiziellen Dokumentation. Ersetzen Sie die Region, in der Sie den Bucket erstellen, wenn Sie möchten. Ich habe es in "Asien-Nordosten1 (Tokio)" erstellt.

Erstellen Sie ein Backup-Skript und führen Sie es regelmäßig mit "cron" aus.

#Erstellen eines Sicherungsskripts
$ vi /home/minecraft/backup.sh

#Unten Backup.Inhalt von 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'

#Ändern Sie die Berechtigungen des erstellten Skripts
$ chmod 755 /home/minecraft/backup.sh

Um einen Cron-Job zu planen, müssen Sie an Crontab schreiben.


$ crontab -e

#Unten ist der Inhalt von crontab
0 */4 * * * /home/minecraft/backup.sh

Mit den obigen Einstellungen wird backup.sh alle 4 Stunden ausgeführt. Laut offiziellem Dokument dauert es 4 Stunden, aber wenn ich abstürze und mich erholt habe, ist es mental schwierig, bis zu 4 Stunden in den vorherigen Zustand zurückzukehren, also habe ich es jede Stunde geschafft (lacht).

** Speichern Sie Backups für Generationen ** Wenn Sie nur weiter sichern, werden die Dateien sehr groß, sodass immer nur eine bestimmte Anzahl von Generationen erhalten bleibt. Cloud Storage hat eine Funktion namens Life Cycle Management von Objekten. Einfach ausgedrückt, werden alte Backups automatisch gelöscht.

Fahren Sie für die Einstellungen gemäß dem Punkt "Alte Sicherungen automatisch löschen" im offiziellen Dokument fort. 1 Punkt Elemente mit anderen Einstellungen als im offiziellen Dokument sind Wählen Sie im Abschnitt Objektbedingung auswählen die Option Alter aus. Ich habe mein Alter auf 3 Tage anstatt auf 7 Tage geändert. In meinem Fall mache ich jede Stunde Backups. Wenn ich also 24 Mal am Tag und 7 Tage abreise, bleiben 168 Backups übrig. Wie erwartet wurde es unter Berücksichtigung der Kosten auf 3 Tage festgelegt.

Zusammenfassung

Wie war es? Dies ist das Ende des Aufbaus des Micra-Servers. Beim nächsten Mal wird es möglich sein, den diesmal aus Discord erstellten Micra-Server zu steuern.

Nächstes Mal-> Eine Geschichte über den Betrieb einer GCP-Instanz von Discord

Recommended Posts

Eine Geschichte über einen GCP-Anfänger, der versucht, mit GCE einen Micra-Server aufzubauen
Eine Geschichte über einen Linux-Anfänger, der Linux auf ein Windows-Tablet bringt
Führen Sie einen Linux-Server mit GCP aus
Eine Geschichte über den Betrieb einer GCP-Instanz von Discord
Eine Geschichte über das Ausführen von Python auf PHP auf Heroku
Erstellen einer Python-Umgebung auf dem Sakura VPS-Server
Eine Geschichte zum Erstellen einer IDE-Umgebung mit WinPython unter einem alten Windows-Betriebssystem.
Die Geschichte des Starts eines Minecraft-Servers von Discord
[Teil 1] Lassen Sie uns einen Micra-Server unter Linux einrichten
Eine Geschichte über einen Ingenieur, der nur auf der Serverseite kam, erstellte ein Portfolio
Die Geschichte, einen PyPI-Cache-Server (mit Docker) aufzubauen und mich wieder ein wenig glücklich zu machen
[Einführung in AWS] Memorandum zum Erstellen eines Webservers auf AWS
Eine Geschichte über einen Python-Anfänger, der mit dem No-Modul'http.server 'feststeckt.
Eine Geschichte über die Umstellung eines persönlich entwickelten Webdienstes von einem Mietserver auf GCP (Google Cloud Platform)
[Windows] Die Geschichte eines Anfängers, der über die Einstellung von Anacondas PFAD stolpert.
Eine Geschichte darüber, wie man in GAE / P über verstümmelte Charaktere nachdenken möchte
Eine erfrischende Geschichte über Slice in Python
Erstellen einer Python-Umgebung unter Ubuntu
Eine launische Geschichte über Slice in Python
Führen Sie TensorFlow2 auf dem VPS-Server aus
Die Geschichte der Verwendung von Python reduziert
Eine Geschichte, die es aufgegeben hat, JavaScripthon unter Windows auszuführen.
Eine Geschichte über das Erstellen eines anonymen Kanals mit Slack aus null Wissen
Eine Geschichte über einen Anfänger im Deep Learning, der versucht, Gitarren mit CNN zu klassifizieren
Eine Geschichte über einen Anfänger, der sich bemüht, CentOS 8 einzurichten (Verfahrensnotiz)
Erstellen Sie einen Pypi-Cache-Server auf QNAP
Eine Geschichte über einen magischen Umbau, der Lubuntu in ein Chromebook bringt
Erstellen einer LaTeX-Umgebung unter Chrome OS
Erstellen Sie einen Samba-Server unter Arch Linux
Lassen Sie uns einen WEB-Server mit Chromebook einrichten
Eine Geschichte über Python Pop und Append
Eine Geschichte über einen Versuch, uwsgi auf einer fehlgeschlagenen EC2-Instanz zu installieren
Eine Geschichte, die ich als Programmieranfänger mit GeoDjango erstellt habe
Automatisches Zakuzaku, Bitcoin. Eine Geschichte über einen Python-Anfänger, der ein 1-Minuten-Diagramm für Münzprüfungen erstellt