Tutoriel Gérer le Multi-Serveur sous une machine Linux.

WishOra

Architecte en herbe
20 Novembre 2012
175
9
57
26
Bonjour,
Je voulais contribuer à la communauté minecraft.fr j'ai donc eu l'idée de me lancer dans un tutoriel.
Le multi-serveur revient souvent et il n'existe pas beaucoup de tutoriels sur le net :) je vais donc me lancer dans l'aventure !

Somaire:
  1. Comment ça marche.
  2. Le proxy.
  3. Les différents serveurs.
  4. Faire suivre l'IP du joueur
  5. Enregistrer Bungee et vos serveurs comme un service sur votre VPS / Dédié.

1. Comment ça marche?

Tout d'abord je vais vous expliquer de façon simplifiée comment marche BungeeCord.
BungeeCord fait partie du projet Spigot. Vous devrez donc utiliser Spigot à la place de CraftBukkit sur tous vos serveurs si ce n'est déjà fait !
Pas de panique ! Spigot gère les plugins bukkits. En fait spigot, c'est comme CraftBukkit, en amélioré. Il rajoute des fonctionnalités et est censé être plus économe en ressources donc plus performant. Personnellement je n'ai jamais observé une différence visible. :p

Pour en revenir à notre BungeeCord, en réalité c'est un proxy qui va être le "manager" de vos serveurs.
Il va dire "tiens toi tu as fait /server pvp je te déco du serveur lobby qui était sur le port 25566 pour te mettre sur le serveur pvp qui est sur le port 25567.
Ou encore "Hum un nouveau joueur? Quel est le serveur par défault? Lobby ? Ok 25566, je redirige."
Vous l'aurez compris, Bungee n'est pas un serveur Minecraft, il marche indépendamment.
Si vous voulez que le joueur se connecte à monserveur.fr il faudra mettre bungee sur le port 25565. Les autres serveurs sur des ports différents, en fait le joueur croira qu'il est sur 25565 alors qu'autant il est connecté au serveur pvp sur 25567 au travers de bungee ^^ Je sais pas si je m'exprime bien en fait :p.

Pour résumer, votre client va se connecter à bungee qui va le rediriger vers le serveur voulu, soit le serveur par défaut, soit le dernier serveur sur lequel un joueur s'est connecté...

2. Le proxy

On attaque sérieusement cette fois. Je pars du principe que vous utilisez un VPS ou un dédié sous linux. Personnellement je dispose d'un VPS 8GB de ram pour les tests hébergé chez Harmony-Hosting que je conseille fortement.
Tout d'abord veillez créer un dossier qui s'appelle par exemple proxy, ou bungee, appelons-le bungee.
Code:
mkdir /home/bungee
Rendez vous ensuite dans le dossier récemment créé avec la commande cd
Code:
cd /home/bungee
(Aussi il se peut que quand je marque certaines commandes vous ayez un "accès refusé" ou similaire.
Pour résoudre le problème il suffit de précéder votre commande par sudo,
ex: sudo mkdir /home/bungee/ ).

Ensuitte nous allons récupérer le bungeecord.jar sur le dépot de spigot: http://ci.md-5.net/job/BungeeCord/

Envoyez le .jar avec le ftp ou directement depuis votre ssh avec
Code:
wget http://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/bootstrap/target/BungeeCord.jar
L'url peut changer selon la version de bungee, faites clic droit --> copier l'adresse du lien sur le bungee que vous voulez depuis le dépot Jenkins !

Nous allons ensuite créer un petit script pour lancer Bungee rapidement dans un screen.
Nous verrons à la fin de ce tutoriel comment enregistrer bungee comme un service sur le VPS. Ce script est donc provisoire ^^.
Le screen permet de lancer une application en arrière plan.
faites ceci:
Code:
apt-get update && apt-get install screen
Pour installer le packet screen si ce n'est déjà fait. (Vérifiez si vous l'avez en tapant screen pour voir si la commande est connue :) ).
Ensuite créez un batch.
Code:
nano bungee.sh
tapez ceci à l'intèrieur de l'éditeur de texte nano:
Code:
screen -S Bungee java -jar BungeeCord.jar nogui
(Si nano --> commande inconnue faites un apt-get install nano) !

Ensuite il faut exécuter ce script pour lancer bungee:
Code:
sh bungee.sh
Vous allez donc entrer dans le screen. pour fermer bungee ce n'est pas stop comme minecraft, mais end.
Faites le quand vous voyez "Listening on port xxxxx".
Pour se "détacher" d'un screen tout en le laissant tourner faites ctrl + a + d
Ensuite pour retourner sur un screen, faites screen -r Bungee (car on l'a appelé Bungee).
Pour obtenir la liste des screens: screen -ls
Pour enlever un screen bugué: screen -wipe [nomScreen].

Donc fermez votre bungee en tapant end.
Vous verrez que ce dernier à généré des dossiers.
On va commencer par le config.yml.
Voila ce que j'ai chez moi cela peut différer selon la version:
Modifiez la config comme indiqué:
Code:
groups:[/FONT]
[FONT=arial]  VOTREPSEUDO:[/FONT]
[FONT=arial]  - admin[/FONT]
[FONT=arial]disabled_commands:[/FONT]
[FONT=arial]- find[/FONT]
[FONT=arial]player_limit: -1 [/FONT]
[FONT=arial]stats: d66a9034-b0bc-4aaa-9862-79b17b8ceaea[/FONT]
[FONT=arial]permissions:[/FONT]
[FONT=arial]  default:[/FONT]
[FONT=arial]  - bungeecord.command.server[/FONT]
[FONT=arial]  - bungeecord.command.list[/FONT]
[FONT=arial]  admin:[/FONT]
[FONT=arial]  - bungeecord.command.alert[/FONT]
[FONT=arial]  - bungeecord.command.end[/FONT]
[FONT=arial]  - bungeecord.command.ip[/FONT]
[FONT=arial]  - bungeecord.command.reload[/FONT]
[FONT=arial]listeners:[/FONT]
[FONT=arial]- max_players: 1 // On va augmenter un peu quand même ^^[/FONT]
[FONT=arial]  fallback_server: lobby // Ici mettez le nom du serveur en cas de crash d'un autre.[/FONT]
[FONT=arial]  host: 0.0.0.0:25577 // L'adresse de connexion de votre serveur.[/FONT]
[FONT=arial]  bind_local_address: true[/FONT]
[FONT=arial]  ping_passthrough: false[/FONT]
[FONT=arial]  tab_list: GLOBAL_PING[/FONT]
[FONT=arial]  default_server: lobby // Serveur par défault(ex: Nouveaux !).[/FONT]
[FONT=arial]  forced_hosts:[/FONT]
[FONT=arial]    pvp.md-5.net: pvp // Crée un virtualHost, par exemple si vous avez votreserveur.fr, pvp.votreserveur.fr: pvp fera que cette ip pointera vers le serveur pvp et non le serveur par défault ![/FONT]
[FONT=arial]  tab_size: 60 // Taille du tableau du bouton TAB.[/FONT]
[FONT=arial]  force_default_server: false[/FONT]
[FONT=arial]  motd: '&1Another Bungee server' // Message sur la liste des serveurs dans MultiPlayer avant de se co.[/FONT]
[FONT=arial]  query_enabled: false[/FONT]
[FONT=arial]  query_port: 25577[/FONT]
[FONT=arial]timeout: 30000[/FONT]
[FONT=arial]connection_throttle: 4000[/FONT]
[FONT=arial]servers:  // Configurez ici tous vos noms de serveurs avec leurs ports.[/FONT]
[FONT=arial]  lobby:[/FONT]
[FONT=arial]    address: localhost:25565[/FONT]
[FONT=arial]    restricted: false[/FONT]
[FONT=arial]    motd: '&1Just another BungeeCord - Forced Host'[/FONT]
[FONT=arial]  pvp:[/FONT]
[FONT=arial]    address: localhost:25548[/FONT]
[FONT=arial]    restricted: false[/FONT]
[FONT=arial]    motd: '&eJuste &9UnderGard&e, juste un &6serveur en OR &e! Accéder au serveur PvP :)'[/FONT]
[FONT=arial]ip_forward: false // On en reparle dans la partie 4. ![/FONT]
[FONT=arial]online_mode: true // Comme vous n'êtes pas des pirates, vous ne toucherez pas cette option ![/FONT]
[FONT=arial]


Vous pouvez redémarrer votre bungee (sh bungee.sh) et si vous voyez des erreurs, c'est que vous vous êtes trompés(perspicace !)).

Bon je ferais la partie 2 de ce tutoriel demain ! @Peluche !
(Et la mise en page au passage XD).
 
  • J'aime
Reactions: dilondilon2

Guerro

TM/SM/QM > all
5 Mars 2012
580
48
139
25
o
Tu pourrai le mettre en version toute plateforme linux ? Car le apt-get c'est du debian/ubuntu ça .
Merci quand même :)