===== 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. {{tag>user francophone}} ==== 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]