Logo Khaganat
Traductions de cette page?:

Aleajactaest

Présentation

Alea Jacta Est, je me lance dans l'aventure du libre.

[Arrivé : Juillet 2017]

Mes connaissances :

  • Langues:
    • Anglais (Un peu)
    • lojban (pas du tout)
    • Français (Je crois)
  • Programmation:
    • C / C++
    • Java (totalement inutile ici)
    • Turbo Pascal (Hum, je ne sais pas si je dois le mettre celui-la)
    • Python
    • Bash (Hum, pas vraiment de la programmation)
    • Perl (y'a bien longtemps)
    • Html (pfff, programmation ?)
    • … (Je ne sais plus quoi dire, )
  • Outils:
    • Docker
    • Vagrant
    • Ansible
    • Jenkins
    • Nagios
    • GitLab
    • Buildroot (pour les curieux, compilation croisé intel → ARM, permet de générer des firmware pour des carte comme pcDuino, CubieBoard, …)
  • Système :
    • Debian
    • Ubuntu
    • ArchLinux (Un peu seulement, je débute)
    • Gentoo (il y a bien longtemps, …)
    • RedHat - Centos
    • HURD (si si, je l'ai installé, bon je ne l'ai plus :( )
    • LFS (Linux From Scratch, pour ceux qu'ils veulent faire toutes les étapes à la main, fort instructif)
    • … (non précisé car inconnu du grand publique :) )

Ce que j'aime faire :

Tout m'amuse, sauf la traduction en Anglais.
Bref, découvrir de nouveau langage (nouvelle méthode)
Et surtout, que cela soit utile à tous, et facile à utiliser.

Cahier d'ami(e)s

Laissez ce chapitre pour que les gens parlent de vous et vous présentent aux autres.

Travaux

Docker

feature/19-package-server-in-a-Docker-container

Actuellement, je regarde la “feature 19” afin de permettre la compilation et le démarrage sous docker.

Intérêt premier, facilité la compilation et le test.

En attendant la validation (ou pas) dans la branche officiel

# Creer un repertoire pour tous les sources khanat
mkdir -p khanat
cd khanat
# on clone les repo
git clone https://git.khaganat.net/aleajactaest/khanat-code.git
git clone https://git.khaganat.net/khaganat/khanat-ressources.git

# On lance le build (construit une image docker avec tous les outils de compilation, puis lance la compilation)
cd khanat/khanat-code
./dist/docker/server/debian/jessie/x86_64/build.sh

# On lance le démarre (contruit deux images docker puis lance le serveur dans un container)
# Bien définir la version client que vous utilisez 'ici 57'
# regarder dans le répertoire client unpack/ryzom_00057.idx
cd khanat/khanat-code
./dist/docker/server/debian/jessie/x86_64/server.sh --client-version=57
Connection
  • ssh
    • compte : compil
    • mot de passe : compil
    • accès à root via : sudo bash
    • command :
./server.sh --ssh
  • phpmyadmin
    • compte : root
    • pas de mot de passe
    • Addresse
http://[Ip address]/phpmyadmin
  • admin khanat :
    • compte : admin
    • mot de passe : admin
    • Addresse :
http://[Ip address]:40916
configurer le client

fichier : client_default.cfg

1. récuperer les informations importantes : a) récuperer l'ID du containeur actif (server_khanat_debian_jessie_x86_64)

docker ps
CONTAINER ID        IMAGE                                COMMAND               CREATED             STATUS              PORTS               NAMES
254953bb2afe        server_khanat_debian_jessie_x86_64   "/opt/autostart.sh"   8 seconds ago       Up 6 seconds                            eager_noether

b) Ip du serveur khanat (containeur)

docker inspect --format="{{ .NetworkSettings.IPAddress }}" 254953bb2afe
172.17.0.2

2. editer le fichier de configuration client vi client_default.cfg

...

Application = { "Lirria", "./client_ryzom_r.exe", "./" };    /// ICI le domaine s'appelle "Lirria" - depend de la config de la base de donnée
BackgroundDownloader = 0;
PatchWanted = 0;                                             // On desactive le patch
//PatchUrl = "http://172.17.0.2:43435";                      // et en plus on enleve l'URL
RingReleaseNotePath = "http://172.17.0.2/patch/index.php";   // On change l'adresse IP
StartupHost = "172.17.0.2:40916";                            // On change l'adresse IP
StartupPage = "/login/r2_login.php";
InstallStatsUrl = "http://172.17.0.2:50000/stats/stats.php"; // On change l'adresse IP

CreateAccountURL = "http://172.17.0.2/ams/?page=register";   // On change l'adresse IP
EditAccountURL   = "http://172.17.0.2/";                     // On change l'adresse IP
ForgetPwdURL     = "http://172.17.0.2/ams/index.php?page=forgot_password";  // On change l'adresse IP
//FreeTrialURL     = "https://lirria.khaganat.net/";
LoginSupportURL  = "https://www.khaganat.net/irc";
ConditionsTermsURL = "khaganat.net/wikhan/fr:charte";
...
Détail build.sh

Script qui s'occupe de la partie compilation

Étape:

  • Supprime l'ancien build (activer via l'option -r)
  • Génération d'une image docker contenant tous les outils pour compiler
  • Lancement de la compilation
  • Log build : code/build_linux64/build.log
Détail server.sh

Script qui s'occupe de la partie construction du serveur puis du démarrage

Étape:

  • Génère un fichier compressé contenant les ressources khanat (tar.gz)
  • Génère un ficheir compressé contenant les ressources ryzom (tar.gz)
  • Création d'une image contenant tous les outils pour lancer le serveur khanat (apache, mysql, …)
    • Si l'image existe, il l'utilise
    • server_generic_debian_jessie_x86_64
  • Création d'une image contenant tous les fichiers khanat (binaire, data) - utilise l'image plus haut
    • Si l'image existe, il l'utilise (mettre l'option -k pour régénérer l'image)
    • server_khanat_debian_jessie_x86_64
  • Démarre un serveur khanat (via docker) avec tous les process sous screen
    • possibilité d'utiliser le script pour se connecter (en ssh) sur l'instance active khanat - s'il y en a qu'une.
A Faire
  • détecter un modification des ressources ou des binaires (Afin de rendre plus facile l'utilisation)
    • via md5sum par exemple
  • Changer la localisation des binaires et ressource
    • /usr/local/ … → /usr
    • /home/compil/
  • Permettre la génération d'un package pour debian (installable via les commandes standard)
    • revoir l’arborescence, fichier installation (package pour les binaires, package pour les ressources)
  • Modifier la localisation du build (afin de ne pas être mélanger avec le code source)
  • Prévoir un système autodétection dans le script build.sh (afin de ne pas régénérer l'image docker s'il existe)

Aide

Docker

1/ lister les images

docker images

2/ lister les containeurs

docker ps -a

3/ récuperer les info d'un containeur

docker inspect [id containeur]

4/ arrêter un containeur

docker stop [id containeur]

5/ supprimer un containeur

docker rm [id containeur]

6/ supprimer une image

docker rmi [id image]
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
user/aleajactaest.txt · Dernière modification : 2021/12/03 19:19 de 127.0.0.1

Licences Mentions légales Accueil du site Contact