Microsoft défend Surface Duo dans une démo de 35 minutes – Review Geek
15 août 2020
Comment faire pour automatiquement les e-mails BCC à l'aide de règles dans Outlook
15 août 2020

Pterodactyl est une plateforme de gestion de serveur qui utilise des conteneurs Docker pour gérer les instances d'applications. Il est conçu pour exécuter, configurer et gérer des serveurs de jeux sans tête, comme les serveurs Minecraft, mais peut également être utilisé pour d’autres applications.

Installer Ptérodactyle et le démon

Ptérodactyle a deux composants principaux: le panneau de contrôle qui héberge l'interface Web et parle aux démons, et les démons eux-mêmes qui s'exécutent sur les serveurs hôtes, qui agissent comme des machines de travail qui s'exécutent sur votre matériel. Le panneau de contrôle peut être installé sur un VPS de base, ou vous pouvez l'installer directement sur l'un des serveurs hôtes à côté du démon.

Le démon gère les conteneurs Docker dans lesquels les serveurs de jeu s'exécutent. Docker est un outil de conteneurisation, qui regroupe en gros toutes les dépendances et le code dont votre application a besoin pour s'exécuter dans un seul fichier, appelé image Docker, qui peut être copié pour démarrer de nouveaux serveurs. Cela vous permet de définir comment lancer un serveur Minecraft, puis de déployer 20 copies de cette image de serveur Minecraft principale, avec une configuration variable, le tout sans installer Java 20 fois.

L'installation de Ptérodactyle est un peu plus compliquée que apt obtenir l'installation, nous ne passerons donc pas en revue toutes les étapes spécifiques ici. Au lieu de cela, vous peuvent se référer à leur guide d'installation, qui devrait rester à jour. Essentiellement, vous installez une pile LAMP sur le VPS et configurez une base de données MySQL pour communiquer correctement avec Pterodactyl.

Ensuite, sur chaque nœud hôte, vous devrez installer le démon. Cela implique l'installation de Docker et NodeJS, et l'exécution de LetsEncrypt certbot pour générer un certificat SSL afin que la connexion entre le panneau de contrôle et le démon puisse être établie en toute sécurité via TLS.

Une fois installé, vous devrez configurer et installer chaque démon à partir de la console Pterodactyl. Tout d'abord, vous devez créer des balises d'emplacement à partir de l'onglet «Emplacements» dans la barre latérale, pour trier chaque démon. Il s’agit essentiellement de codes de région que vous pouvez créer pour l’organisation et qui ne servent à aucune autre fin, mais il est nécessaire d’en avoir au moins un pour configurer un démon.

Ensuite, créez un nouveau nœud à partir de l'onglet «Nœuds» dans la barre latérale.

Donnez-lui un nom et une description, et entrez le nom de domaine qui peut être utilisé pour atteindre le démon. En configuration, vous pouvez modifier le répertoire du fichier du démon (si vous êtes sur OVH, ce sera / home / daemon-data plutôt que / srv /), ainsi que la modification de la quantité totale de mémoire et d'espace disque disponible pour les nouveaux serveurs. C'est à l'échelle du nœud, alors entrez les spécifications de votre machine ici.

Ensuite, cliquez sur créer et vous recevrez un fichier JSON. Copiez ceci et collez-le dans:

/srv/daemon/config/core.json

Ensuite, vous pouvez démarrer le démon avec sudo npm start. Cependant, vous voudrez probablement démonisez ceci avec systemd, il fonctionnera donc au démarrage.

(Unité)
Description = Démon des ailes de ptérodactyle
Après = docker.service

(Un service)
Utilisateur = racine
# Group = un_groupe
WorkingDirectory = / srv / daemon
LimitNOFILE = 4096
PIDFile = / var / run / wings / daemon.pid
ExecStart = / usr / bin / node /srv/daemon/src/index.js
Redémarrer = en cas d'échec
StartLimitInterval = 600

(Installer)
WantedBy = multi-user.target

Enregistrez ceci sous ailes.service dans / etc / systemd / system /, et activez-le:

systemctl enable - maintenant les ailes

Le nœud doit maintenant être lié (si ce n'est pas le cas, vérifiez les paramètres de votre pare-feu), mais vous devrez effectuer une dernière étape pour qu'il soit utilisable: attribuez des allocations d'adresses IP aux nouveaux serveurs à utiliser à partir de l'onglet "Allocation" . Si votre serveur a besoin de plusieurs ports, vous devrez spécifier des allocations supplémentaires.

Configuration de la configuration de votre serveur

La configuration du serveur commence par Eggs, qui contient l'essentiel des variables, et définit l'image Docker à utiliser. Les œufs sont classés en nids en fonction du jeu; par exemple, le nid Minecraft contient des œufs pour la vanille, ainsi que des configurations de serveur modifiées telles que Forge, Paper et BungeeCord.

Ptérodactyle avertit en gros caractères rouges que la modification d'un œuf est une fonctionnalité avancée, mais elle est facile à modifier, et si vous voulez un contrôle manuel sur le fonctionnement de vos serveurs, vous devrez vous familiariser avec eux.

Sous "Configuration", dans les paramètres Egg, vous trouverez les commandes permettant de changer l'image Docker et de modifier les commandes de démarrage.

Vous obtiendrez le meilleur contrôle en fournissant vos propres images Docker. Vous pouvez fork des images prédéfinies de Pterodactylet modifiez le script de démarrage dans entrypoint.sh pour inclure ce que vous voulez. Ceci est utile si vous souhaitez effectuer certaines actions avant le démarrage du binaire du serveur de jeu. Dans mon cas, je configure cela pour mettre à jour le serveur vers la branche Steam appropriée, puis récupère la dernière version de mon code sur le serveur TeamCity. De cette façon, le serveur est toujours mis à jour et les déploiements de code sont gérés automatiquement lorsque le serveur redémarre.

Si vous cherchez simplement à exécuter un serveur, et non des mods ou du code personnalisés, vous pouvez simplement modifier les variables dans l'onglet «Variables», qui incluent des éléments tels que le nom du serveur, les ports RCON et toute autre configuration qui obtient passé en argument à la ligne de commande.

Vous pouvez utiliser ces variables dans le script de démarrage et le point d'entrée du conteneur Docker (utile pour changer le script en fonction du type de serveur), et elles peuvent être modifiées sur une base par serveur.

Créer un serveur

À partir de la page «Serveurs» de la barre latérale, créez un nouveau serveur. Donnez-lui un nom et une description, et assurez-vous de vous définir comme propriétaire du serveur, sinon cela provoquera une erreur.

Vous devrez également sélectionner le nœud sur lequel ce serveur sera exécuté et l’allocation de port qu’il utilisera. Si vous avez besoin de ports supplémentaires pour RCON, vous devrez définir des allocations secondaires.

En dessous, vous trouverez les commandes de gestion des ressources, où vous pouvez définir les limites de mémoire, de disque et de processeur. La plupart des serveurs de jeux sont à thread unique, mais certaines tâches (comme la génération de navmesh au démarrage pour Rust) peuvent surcharger le processeur, ce qui peut affecter d'autres services sur le système. Si vous ne vous en souciez pas, et que vous voulez simplement que le serveur fonctionne avec autant que possible, vous pouvez définir toutes ces valeurs sur 0 pour les désactiver.

Ensuite, sélectionnez le nid et l'œuf que vous utilisez. Vous trouverez des commandes pour désactiver l'image Docker, ainsi que pour remplacer toutes les variables de serveur sur l'œuf. Vous devrez peut-être renseigner ici les numéros de port pour correspondre aux allocations.

Une fois que tout est configuré, cliquez sur créer. Pterodactyl enverra la demande au démon et créera un nouveau serveur. La première installation prendra quelques minutes, mais une fois qu'elle sera prête, vous pourrez afficher la sortie du serveur à partir de l'onglet "Console" du menu du serveur.

Dans ce menu, vous trouverez également un système de gestion de fichiers intégré, ainsi qu'un nom d'utilisateur pour la connexion via FTP (qui est chrooté dans le conteneur Docker). Vous pouvez également ajouter d'autres utilisateurs à ce serveur et configurer des programmes pour exécuter des commandes telles que des redémarrages quotidiens.

Sous "Configuration", vous trouverez les commandes permettant de modifier les variables du serveur, ainsi que de déclencher des reconstructions du conteneur Docker. Cela n'efface aucune donnée, mais est nécessaire si vous modifiez entrypoint.cs.

//]]>