%TOC% ---+ La nouvelle infrastructure du JMMC La nouvelle infrastructure est basée sur un ensemble de vm, faisant tourner des services indépendants les uns des autres ---+ infos projet * *Wiki* : =http://www.jmmc.fr/twiki/bin/view/Jmmc/Software/JmmcInfra= * *Gestion code source* : GIT avec pour commencer le dépôt initialement créé par Raphael : =https://github.com/sxpert/jmmc= * *Tickets* : [[http://trac.jmmc.fr/jmmc-sw/report/29][trac]] ---+ acces et administration de l'infrastructure L'infrastructure repose sur les 3 catégories de machines: * [[#Controleur][1 controleur (administration centralisée)]] * 1 frontal (interface avec l'exterieur) extensible à plusieurs dans le futur si besoin * N noeuds de services * La configuration se fait uniquement à travers un ensemble de scripts ansible, qui reconfigurent entierement l'infrastructure, en fonction de ce qu'il est nécessaire de modifier. * pour reconfigurer les services, il suffit de lancer le script ansible qui effectuera toutes les taches nécessaires à partir de la machine controlleur<br/> ces scripts ansible réalisent les operations suivantes : * installation de la vm / container * configuration d'un compte de service avec la clé publique ssh du controlleur, ce compte a les acces sudo nécessaires, afin que le compte de service du controlleur puisse lancer des scripts sur la nouvelle machine * installation / compilation des logiciels a utiliser dans le container pour offir le service * configuration du service a proposer * ajout du service dans la configuration du frontal haproxy * afin d'assurer la cohérence de la configuration a tout moment, il est recommandé de ne pas modifier les configurations des machines ou containers portant les applications a la main. ---++ configuration de service supplémentaires * écrire les scripts ansible nécessaires au déploiement de la nouvelle application * des roles sont fournis (...) afin de permettre de générer les parties communes entre toutes les applis (notamment la génération automatique du conteneur de l'appli) * une fois testé le script ansible, mettre a jour le repository sur le compte de service du controlleur avec git pull * lancer le script ansible, l'application sera automatiquement déployée --- ---+ mise en oeuvre pratique dans le cadre de l'osugdc (préprod) en attendant que les services de l'osugdc soient en mesure de proposer une infrastructure suffisamment souple, un prototype a 3 machines virtuelles a été mis en place ---++ machines virtuelles * trois machines virtuelles ont été créées a la main * jmmc-ctrl-1.ujf-grenoble.fr<br/> machine virtuelle faisant office de controlleur * jmmc-fe-1.ujf-grenoble.fr<br/> machine virtuelle faisant office de front end * jmmc-host-1.ujf-grenoble.fr<br/> machine virtuelle faisant office d'hote pour les applications * des comptes de service "sysjmmc" ont été créés par l'équipe de l'osugdc. ces comptes de service ont l'acces sudo adéquat * une clé ssh a été créée sur le controlleur et installée sur le compte de service des deux autres machines. ---++ utilisation de l'infrastructure * pour effectuer le déploiement de nouvelles applications, ou la mise a jour d'une application existante, se connecter sur le compte de service controlleur , mettre a jour le repository git, et lancer le script adéquat --- ---++ Controleur * *host*: =jmmc-ctrl-1.jmmc.fr= * *accés*: =ssh= * *compte de service*: =sysjmmc= Remarque: chaque utilisateur ayant nécessité d'accès à cette machine doit fournir la partie publique de sa clé ssh à jmmc-tech-group (de préférence ed25519) ---++ Frontal * a base de HAProxy <br/> l'installation sur la debian wheezy nécessite l'ajout de la ligne <br/> deb http://ftp.fr.debian.org/debian wheezy-backports main<br/> deb http://ftp.fr.debian.org/debian wheezy-backports-sloppy main<br/> au fichier /etc/apt/sources.list * la configuration ---++ Les noeuds de services ---+++ Site Web * Rajouter ici le point d'entrée vers le code ansible... ---+++ à compléter... ---+ compilation des softs ---++ oifits-explorer départ d'une vm ubuntu vide todo: trouver pour passer le fichier de certificat et son password au jarsigner <verbatim> <settings> <proxies> <proxy> <active>false</active> <!-- <active>false</active> <active>true</active> --> <protocol>http</protocol> <host>www-cache.ujf-grenoble.fr</host> <port>3128</port> <!-- <username>proxyuser</username> <password>somepassword</password> --> <nonProxyHosts>*.jmmc.fr|*.ujf-grenoble.fr|localhost*|127.0.0.1</nonProxyHosts> </proxy> </proxies> <profiles> <profile> <id>dev</id> <properties> <!-- disable jar signer --> <jarsigner.skip>true</jarsigner.skip> <!-- disable javadoc --> <maven.javadoc.skip>true</maven.javadoc.skip> <!-- disable tests --> <maven.test.skip>true</maven.test.skip> </properties> </profile> <profile> <id>deployer</id> <properties> <jarsigner.skip>false</jarsigner.skip> <jarsigner.alias>codesigningcert</jarsigner.alias> <jarsigner.keystore>/home/MCS/etc/globalsign.jks</jarsigner.keystore> <jarsigner.keypass> </jarsigner.keypass> <jarsigner.storepass> </jarsigner.storepass> </properties> </profile> </profiles> <activeProfiles> <activeProfile>deployer</activeProfile> </activeProfiles> </settings> </verbatim> <verbatim> aptitude install maven xsltproc subversion openjdk-7-jdk gsettings-desktop-schemas svn checkout https://svn.jmmc.fr/jmmc-sw/ADM/trunk/adm-tools cd adm-tools/bin . env.sh cd ~/ mkdir public_html mkdir build cd build svn co https://svn.jmmc.fr/jmmc-sw/MCS/trunk/jmcs cd jmcs/parent-pom mvn -Dassembly.skipAssembly -Djarsigner.skip=true clean install svn co https://svn.jmmc.fr/jmmc-sw/MCS/trunk/testgui cd testgui mvn process-resources mvn -Dassembly.skipAssembly -Djarsigner.skip=true clean install admManager.sh install OIFitsExplorer </verbatim> ---+ Références / tuto / documentation * [[https://sysadmincasts.com/episodes/43-19-minutes-with-ansible-part-1-4 ][Tutos vidéo + doc/code & links]] * Episode #43 - 19 Minutes With Ansible (Part 1/4) * Episode #45 - Learning Ansible with Vagrant (Part 2/4) * Episode #46 - Configuration Management with Ansible (Part 3/4) * Episode #47 - Zero-downtime Deployments with Ansible (Part 4/4) * [[http://debops.org/][Debobs]] de très nombreuses contributions ansibles -- Main.RaphaelJacquot - 01 Mar 2016
This topic: Jmmc/Software
>
WebHome
>
JmmcInfra
Topic revision: r9 - 2016-04-15 - RaphaelJacquot
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback