%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... ---+ 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: r8 - 2016-04-13 - 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