Commit 20e7a96d authored by fgiacomoni's avatar fgiacomoni
Browse files

add hack notes and program

parent 377562cd
# Galaxy Interactive Tools Hackathon du 7 au 10 décembre 2020
## Soyons connectés
- Visio, chat pour les questions ou demander les "rooms" privées : https://bbb.visio.inrae.fr/b/vir-ibp-shp-guo
- Solution de repli : https://global.gotomeeting.com/join/234962565 (Solution de rerepli meet.jit.si/vir-ibp-shp-guo)
- Plaquette: https://forgemia.inra.fr/geoc/hackaton2020
- Sous salle 1 (pour les apartés) : https://rdv5.rendez-vous.renater.fr/gxit1
- Sous salle 2 : https://rdv4.rendez-vous.renater.fr/gxit2
## Encadrants
- Yvan Le Bras - MNHN
- Elie Arnaud - MNHN
- Coline Royaux - CNRS-INEE
- Romain Dallet - CNRS - Membre IFB
- Lain Pavot - INRAE
- Anthony Bretaudeau - INRAE - Membre IFB
- Franck Giacomoni - INRAE
- Estelle Ancelet - INRAE
- Patrick Chabrier - INRAE
- Virginie Rossard - INRAE
- Eric Latrille - INRAE
## Menu :yum:
### Après-midi du lundi 7 décembre (14:00 - 17:00)
+ Introduction sur les IT - Patrick & Yvan
Slides
- lancement https://drive.google.com/file/d/1khwprBKxY9psz5zCP7ZJg8geUqMnAg6m/view
- intro https://drive.google.com/file/d/1lQ__SdJkJ0zqmFrc_imIl6VEvlloQqJy/view
Galaxy training material: https://training.galaxyproject.org/training-material
#### Questions
- C'est-à-dire qu'il faut forcément docker ou singularity installé sur le HPC pour utiliser 1 GIT ?
### Journée *admin* du mardi 08 décembre (9:00 - 17:30)
+ Notions sur Ansible - Estelle
+ Installation de Galaxy avec Ansible - Anthony
+ Ajout des GxIT - Anthony & Estelle
### Matinée *dev* du mercredi 09 décembre (9:00 - 13:00)
+ Introduction - Franck & Yvan
+ Reprise en main de la VM du hack - Lain & Anthony
+ UseCase 01 - Installation de l'interactive tool AskOmics - All
### Matinée *dev* du jeudi 10 décembre (9:00 - 13:00)
+ UseCase 02 - Developpement et intégration d'un interactive tool à choisir parmi plusieurs exemples issues des communautés Ecologie et Métabolomique - All
+ UseCase 03 - "Bring your own app" - All
# ----- Les VMs -----
## Connection
[Choisissez votre VMs](https://docs.google.com/spreadsheets/d/1yoTIstEmC6DXVEc-gX0YNyaR7QoDsb7TJZ3sk_K9oyc/edit#gid=0), mis en place par Helena Rasche sur des serveur allemands.
Puis `ssh ubuntu@gat-x.fr.training.galaxyproject.eu`
/!\ leur nombre est limité, si vous êtes simple auditeur ou ne participez qu'à l'introduction, merci de ne pas vous servir.
Après installation de galaxy, il reste 3,5 Go. Quelques VM disponibles avec + de places.
## Naviguer dans le terminal
Byobu est installé sur les VMs qui permet avec quelques commandes de vous faciliter la vie.
`F2` : créer un nouvel onglet
`F3` et `F4` : naviguer dans les onglets
`exit` ou `Ctrl + D` : fermer un onglet
`F7` puis :arrow_up: et :arrow_down: : mode scrollback (pour voir l'intégralité d'un log ou fichier)
`Ctrl + C` : sortir du mode scrollback
Pour activer ou désactiver : 'byobu-disable' et 'byobu-enable'
## Docker : supprimer images et conteneurs
`sudo -iu galaxy` seul l'utilisateur galaxy peut exécuter docker
`docker ps` lister les conteneurs actifs (permet de repérer l'identifiant du conteneur)
`docker stop id_conteneur` arrêter un conteneur
`docker images` liste des images docker présentes sur la machine (permet de récupérer l'identifiant de l'image)
`docker image rm id_image` supprimer une image
# ----- Session *Introduction* -----
[Consulter la session *Introduction* enregistrée ICI !](https://bbb.visio.inrae.fr/playback/presentation/2.0/playback.html?meetingId=216c27a3ffef2fc5c88f2b37c7ed5ef7cd781efe-1607340592703)
## lundi 7 décembre (14:00 - 17:00)
__22 participants__
### 0. Droit à l'enregistrement
Voulez-vous que l'on vous enregistre ? Usage : pour ré-écouter la sessions en cas de problèmes techniques ou absences urgentes
Aucune réponse négative
### 1. Tour de table / ce qu'on fait, attentes
Voir ici [Qui sommes nous ? ](#qui)
Et :
Ancelet Estelle
- INRAE Toulouse / gestion projet / administration / dev => notamment admin-sys d'une instance Galaxy
- présente une partie session admin et en attentes du côté dev + avoir plus d'infos sur Ansible / I
Anne Laheurte
- CDD INRAE Narbonne / passer application ~tipol (micropoluant) vers Galaxy + dev de Galaxy tools
- Galaxy tout neuf, montage en compétence, certaines interrogations sur les interactive tools
Anthony Bretaudeau
- INRAE Rennes / Plateforme GenOuest / s'occupe de plusieurs instances Galaxy dont Genouest et FR
- Discussions avec gens plein d'idées chouettes
Christophe Antoniewski
- responsable plateforme bioinfo ArtBio -> utilisation Galaxy comme outil de base pour production analyse pour chercheurs. Intéresé par les outils et le framework lui-même. Interactive tools = avancée majeure par rapport à l'existant notament rapidité d'inclusion de serveur R ou Python, R Shiny = super intéressant.
- avoir discussions, comment participer à faire progresser ces IT.
Coline
- équipe PNDB / développement outils Galaxy pour analyse de données en écologie.
- Connais Galaxy mais pas du tout Interactive tools
Dominique Pelletier
- chercheure Ifremer / participe aux activités du PNDB
- voir si elle peut en connaitre plus sur Galaxy.
Elie
- équipe PNDB / développement app Shiny MetaShARK
- portage app Shiny MetaShARK vers IT + aide au dev app Shiny
Eric Latrille
- Narbonne biotech environnement avec Jean-Claude et Virginie. Application en chimiométrie / spectres infrarouge / plateforme Galaxy chemflow adossé à un MOOC
- intérêts liens interactif / MOOC
Eric Casellas
- INRAE Toulouse / développeur et déploiement application autour de modèles de simulation dynamique / déjà créé des outils Galaxy / déjà créé des app Shiny
- voir contraintes et possibilités de Galaxy IT
Fabien Mareuil
- Institut Pasteur Ingénieur de Recherche/développeur web et logiciel au Hub de bioinformatique et biostatistique avec Rémi P. Instance Galaxy Pasteur depuis 2013/ environ 2800 utilisateurs. IT pas du tout utilisés à Pasteur cependant de plus en plus d'apps Shiny et Jupyter notebook sont développés à l'IP et nous sommes intéressé par les IT pour pouvoir les intégrer à l'instance Galaxy de l'IP.
- voir pour activer les IT à Galaxy
JC Boulet
- ingé plateforme polyphénol Spectro de masse et RMN / instance Galaxy chemflow + qques outils spectro de masses sur instance perso
- IT et édition de sorties de Galaxy (car souvent sorites complexes sous forme de répertoires donc peu lisibles par utilisateur)
Jérémy Tournayre
- ingé INRAE Clermont Ferrand pour analyse donnée omics -> mise en place de pipelines et analyse statistiques
- IT pour les chercheurs.
Lain Pavot
- ingé développeuse logicielle INRAE notamment Python pour plateforme metabolisme / GxIT - Ansible - Docker notamment via outil R Shiny
- voir les différents outils existants
Nadia Goué
- plateforme Auvergne Bioinfo / utilisation infra mesocentre UCA via notamment instance Galaxy où admin-sys / lien avec bdd
- voir ce qu'il est possible de faire via GxIT et les proposer aux utilisateurs à l'UCA -> rendre autonome les utilisateurs via GxIT qui peuvent répondre à leurs besoins
Pat -> Patrice Dehais (merci ;) )
- Patrice Dever / ingé INRAE avec Sarah Maman gère une instance Galaxy Toulouse depuis 2012
- auditeur libre
Patrick Chabrier
- Animateur équipe INRAE Toulouse / Simulateurs (chèvres/troupeau/...) -> utilisation et exploration de ces simulateurs => utilisation Galaxy = vertueux
- compléter expérience de développeur (R, Python, containers) et à chaque fois interfaces étaient assez rigides/brutes, apport des IT pour ergonomie // co-organisateur et élève
Rémi Planel
- Ingénieur de Recherche au Hub de bioinformatique et biostatistique à l'Institut Pasteur / développeur web / instance Galaxy Pasteur
- intéressé par solutions Ansible
Sarah -> Sarah Maman
- IE Toulouse SIGENAE
- auditrice libre
Virginie Rossard
- labo biotech environnement plateforme Galaxy chemflow / MOOC / développe outils / administre serveur
- questions sur NGINX / sockets - mise en place IT / certificats
Virginie Lollier
- IE Nantes Bioinfo Plateforme BIPS / spectro de masse - RMN - spectroscopie . Mise en place plateforme Galaxy en interne à la plateforme
- découverte
Yann Guitton
- IR plateforme spectro de masse Nantes / workflow4metabolomics / chimiste de plateforme + s'essaye à la bioinfo /
- interface avec communautés habitués en point and clic => gros besoins des users ! Travail avec Lain sur un premier outil IT d'app Shiny
Yvan Le Bras (MNHN-PNDB)
- IR MNHN / infrastructure Pôle national de données de biodiversité (PNDB) - UMS PatriNat / Station marine de Concarneau = première station marine au monde encore en activité ;)
- apprendre !!!!
Excusés (ou pas ;) )
- Amin Cheikhi
- Franck Giacomoni - j'suis en bas du markdown !!!
- Nils Paulhe
- Marie Lefebvre
### 2. [Lancement](https://drive.google.com/file/d/1khwprBKxY9psz5zCP7ZJg8geUqMnAg6m/view?usp=sharing)
Organisateurs : contents d'avoir réuni pour ce hackathon une communauté originaire de plusieurs structures.
Présentation du réseau GEOC.
S'intéresser aux bonne spratiques : planemo (https://github.com/galaxyproject/planemo), intégration continue (GitLab CI/CD)
### 3. [Introduction](https://drive.google.com/file/d/1lQ__SdJkJ0zqmFrc_imIl6VEvlloQqJy/view?usp=sharing)
Son gros + : Galaxy a rendu accessible les Workflows (snake).
Pourquoi continue-t-il à plaire ? se base sur des standards : conda, conteneriser pour garantir l'accessibilité, etc.
Intégration d'outils de plus en plus utilisés : jupyter notebook, la communauté R avec RStudio et RShiny app qui offre une excellente intéractivité.
Plusieurs voies pour galaxy pour offrir de l'intéractivité :
- Développement de Plugins basés sur D3
- des outils spécifiques : trackster
- Galxy Interactive Environments, GIE : basé sur une image docker et avec des input dataset
- Galaxy Interactive Tools, GxIT : un outil classique
- Les jobs peuvent exécutés sur des clusters type hpc
Trainings materials galaxy : https://training.galaxyproject.org/training-material
Intégrer dans un workflow un GxIT...
Persistence de sessions avec un IT :
- Jupyter : mettre dans l'historique et le relancer.
- Shiny : possibilité d'avoir des configurations dans l'url
Les dockers ne sont pas forcément appréciés des clusters de calculs.
Tools classiques : singularity et docker
usegalaxy.fr : on souhaite lancer du singularity mais l'appli doit pouvoir être lancer en NON root.
Exemples d'interactive tool pour une app Shiny :
- https://github.com/yvanlebras/tools-ecology/blob/master/tools/interactive/interactivetool_wallace.xml
- https://github.com/yvanlebras/wallace-docker
Virginie Lollier : IT input et output. Nous : collection ; systèmes historiques ; comment récupère t-il les fichiers ? Il y a des varaibles globales de galaxy pour récupérer ces input et output. Les jeux de données s'affichent au fur et à mesures dans ton historique.
# ----- Session *Admin* -----
[Consulter la session cours *Admin* enregistrée ICI !](https://bbb.visio.inrae.fr/playback/presentation/2.0/playback.html?meetingId=216c27a3ffef2fc5c88f2b37c7ed5ef7cd781efe-1607340592703)
### 0. Recommandations
Mettre votre Statut "éloigné" si vous êtes occupés :)
Les salles pour les apartés en cas de soucis divers (ex : problème sur la vm) :
- Sous salle 1 : https://rdv5.rendez-vous.renater.fr/gxit1
- Sous salle 2 : https://rdv4.rendez-vous.renater.fr/gxit2
Voulez vous revoir les bases d'Ansible ? Sondage qui va apparaitre en bas à droite de votre écran BBB, répondre oui ou non ! Réponse :
![](https://i.imgur.com/S56KItJ.png)
### 1. Tour de table / ce qui peut nous empêcher de suivre cette journée
Estelle: éviter de trop se focaliser sur la présentation et manquer d'écoute
Anthony: nucléaire et connection
Christophe: réunion utilisteur de 12-13 + ifb 15-17
Pat:
Anne:Pas de pb
Viginie : au Labo pas de pb
Coline : pb de bande passante potentiel
Eric : Narbonne il pleut
Lain : petite réunion vers 14h
Fabien M: à la maison
Jean-Claude: réunion vers 16h30
Patrick: scribe
Jérémy:
Nadia: pas beaucoup de bande passante
Rémi: vers 11h logistique perso transfert travail
Marie: en // workshop
Sarah: à la maison + auditrice libre
Yann: arrivée 11h10...auditeur libre
Yvan: suivre un peu
## Introduction à Ansible
résultat du sondage 9 oui / 15
- [Diapos](https://training.galaxyproject.org/training-material/topics/admin/tutorials/ansible/slides.html)
- [Tutoriel](https://training.galaxyproject.org/training-material/topics/admin/tutorials/ansible/tutorial.html)
15 diapos quoi/pourquoi/comment
Le rôle est la brique de base.
Un enjeu savoir réutiliser des rôles
Théorie/fonctionnenment de base/ Vocabulaire
A noter que le dépôt d'Ansible s'appelle "galaxy" à ne pas confondre avec galaxyproject.
Ansible pour gérer l'état de la machine:
- état courrant
- évolution
Tout est documentable et versionné.
Répondre à la question de la traçabilité des évolutions d'une machine.
Faciliter la reconstruction d'une machine
gestion de configuration = reproductibilité de la complexité d'une config
Pas besoin de déployer de démon sur les machines adminitrés.
Ansible = opensource & soutenu par Red Hat.
Avantage = communauté très importante et aussi au sein de la communauté Galaxy
Passage au vocabulaire
- inventory file = liste structurée des machines servies(=administrées) + utilisateur de connection en ssh, le choix du nom des groupes est important, en particulier parce que le nom va être réutilisé à plusieurs endroit. A noter qu'une machine peut appartenir à plusieurs groupes. Notion de sous-groupe existante aussi
- module = fonction exécutable paramètrable...ligne de commande
- une tâche = invocation d'un module avec les paramètre...script
- module+tâche = couche d'abstration générique fournit un os générique en quelque sorte
- rôle = succession de tâche + fichiers + templates + variables + handlers
remarque : ce qu'un rôle peut faire un autre peut le défaire
- playbook = liste des rôles à appliquer sur un groupe de machines
Commencer à utiliser Ansible = réutiliser des rôles pour développer des playbook
Fonctionnalités supplémentaires:
- Vault pour stoquer des informations critiques https://github.com/ARTbio/GalaxyKickStart/blob/local_Mississippi/group_vars/Mississippi
1 ou plusieurs playbook?
Tout dépend?
Playbook general + playbook spécifique plus critique.
Les rôles sont déposés sur des repositories. Apprécier leur qualité..un peu comme d'habitude, popularité, expérience, tests.
Notion d'"idem potence"
L'unique prérequis = ssh
1 playbook peut échouer
Il existe un ansible lint qui contrôle la consistance du code.
Répertoires d'un role :
Default : variable par défaut ; ces variables vont pouvoir être modifiées.
Files : fichiers copier tel quel sur l'hote. Bout de code copié sur l'hote pour etre executé la bas. Fichiers de config que l'on veut déposer tel quel sur l'hote. Liste d'outils en yaml avec galaxyproject par exemple.
exemple de handler = redémarrer Apache
meta = information sur le rôle
readme= classique
tâche = pour comprendre lire le main
templates = contient les templates
Les machines listées dans ce groupe auront la même installation. Une machine peuvent être dans plusieurs groupe
On peut aussi avoir des sous groupes
- Module comme une ligne de commande
- Tâche commme un script.
=> Gros avantage d'Ansible : couche d'abstraction sur les commandes que tu peux avoir sur un système.
Tuto galaxyproject pour faire une session admin : https://training.galaxyproject.org/training-material/topics/instructors/tutorials/galaxy-admin-training/tutorial.html#everyone-bootstrapping-the-vms
Passage au tuto
15 minutes pour aller jusqu'à Facts
Atom & vscode fournissent du support dans l'édition de code "Ansible"
- https://atom.io/
- https://code.visualstudio.com/
Les facts = vocabulaire propre à Ansible
## Installation de Galaxy
- [Diapos](https://training.galaxyproject.org/training-material/topics/admin/tutorials/ansible-galaxy/slides.html)
- [Tutoriel](https://training.galaxyproject.org/training-material/topics/admin/tutorials/ansible-galaxy/tutorial.html)
Objectif = Un galaxy de base sur chacune des machines
Galaxy a besoin d'une base de donnée, d'espace disque,
d'uwsgi qui fait le lien entre appli et python.
Généralement uwsgi n'est pas exposé directement en général.
CVMFS fait désormais parti de l'ecosysteme pour partager des donnees de référence entre les instances.
et finalement pulsar pour envoyer des jobs
Pour ceux qui voudraient en savoir, inscriptions sessions virtuels jusqu'au 18 décembre Formation galaxy adminn : https://galaxyproject.org/events/2021-01-admin-training/
A terme offre de calcul potentiel des serveurs pulsar disponible pour les communautés
Classiquement on a point de montage commun entre galaxy et tous les noeuds de calcul.
L'utilisation https://galaxyproject.org/admin/objectstore/ est possible pour définir des espaces de données complexes et à plusieurs endroits.
Choisir où stoquer la BD. En local pour la vitesse et surtout prévoir de la place.
Quelques bonnes pratiques à respecter qui sont implémnetées dans le tuto.
l'approche Pulsar peut se faire en "//" de l'approche classique.
Le tuto, c'est parti, premier RDV à la fin de l'install de PostGres
mutable setup = fichier de conf gérer aussi par Galaxy
## Activation des GxIT
- [Diapos](https://training.galaxyproject.org/training-material/topics/admin/tutorials/interactive-tools/slides.html)
- [Tutoriel](https://training.galaxyproject.org/training-material/topics/admin/tutorials/interactive-tools/tutorial.html)
Tool config : comment on accède à l'application : port et url s'il faut ajouter un sufixe.
Galaxy Interactive tools : GxIT
URL unique pour chaque contener : à la fin notre nom de domaine de notre galaxy.
DNS générique : blabla.notreSiteGalaxy doit référencé notreSiteGalaxy
Le proxy se sert de l'identifiant pour faire le lien avec le port dédié au container.
## Ajouter un IT local via Ansible
- [Diapos](https://docs.google.com/presentation/d/1kS5bOuwWcngKkqk1IRkES-VkDWqECLERlurOggLZpVQ/edit?usp=sharing)
Ajout de l'IT Ethercalc : à la fin du TP, une bonne dizaines de VM étaient fonctionnelles :blond-haired-woman: :blond-haired-man: :female-artist: :man-bowing: :woman-bowing: :man_dancing: :woman_in_lotus_position: :man_in_lotus_position: :blond-haired-woman: :blond-haired-man:
## Retour d'expérience : enregistrement DNS et certificat SSL génériques à l'INRAE
- [Diapos](https://docs.google.com/presentation/d/1-G04UutqIWoxgJCpGXXlv-UgepsFv0F6pDIEm-bTgdQ/edit?usp=sharing)
## Retour d'expérience : utilisation d'un cluster de calcul
- [Diapos](https://docs.google.com/presentation/d/1lu2xSaV5ibQCnlURzyk5ZiIA-EORZSipw74_Fz3pyLM/edit?usp=sharing)
par défaut les IT sont lançés en local.
Slurm très utilisé
Le serveur slurm doit accepter docker.
Seul Galaxy sur genouest a les droits docker.
Autre stratégie = noeuds dédiés.
Subtilité autour des cgroups.
Docker échappe aux contraintes positionnées sur un cgroup.
Judicieux d'utiliser un epilog script.
Utiliser les docker_run_extra_arguments.
Certaines images sont grosses 21 GB pour climat et jupyter.
Comment compartimenter l'accès au système de fichier = pulsar.
spécificité de paramètrage si on utilise slurm et embeded pulsar.
Singularity? ça pourrait être possible.
Mais aussi en perspective Pulsar...
# ----- Session *Dev jour 1* -----
L'enregistrement de la session *Dev jour 1* est fusionné avec celui de la session *Admin*.
[Consulter la session cours *Dev jour 1* enregistrée ICI !](https://bbb.visio.inrae.fr/playback/presentation/2.0/playback.html?meetingId=216c27a3ffef2fc5c88f2b37c7ed5ef7cd781efe-1607340592703)
## Welcome - All GEOC
- Tour de table / ce qui peut nous empêcher de suivre cette journée
- Estelle Ancelet : Détendue ;-) et impatiente
- Coline Royaux : pb de connexion attendue
- Franck Giacomoni : Organisateur, INRAE
- Lain Pavot : Organisateur, INRAE - s'amuser !!
- Romain Dallet : Organisateur, ABIMS et il fait beau vite fait !
- Virginie Rossard : Organisateur, impatiente de dev
- Christophe Antoniewski : Participant - réunion vers 11h
- Anne Laheurte : rien de particulier
- Anthony Bretaudeau : Organisateur, frais et détendu
- Doris Brockmann : INRAE Transfert, dev d'interactive Tools
- Eric Casellas : INRAE, pas de souci - hate !
- Eric Latrille : Organisateur - INRAE, Il fait beau à Narbonne
- **LA PAUSE - la PAUSE - la PAUSE !!**
- Fabien Mareuil : Pasteur - les enfants à la maison
- JC Boulet : Organisateur - INRAE, 4G à l'INRAE
- Elie Arnaud : Organisateur - MMHN,
- Jérémy Tournayre : INRAE, coupure d'elec :-/
- Mélanie Pétéra : INRAE, pas présente lundi/mardi - pb de machine Win
- Marie Lefebvre : INRAE au Pays-Bas
- Nadia Goué : UCA - tous les TPs mardi, grand soleil à Clermont, pas trop de neige
- Patrice Dehais - INRAE, SIGENAE - A la voie d'Estelle ;-)
- Patrick Chabrier : Organisateur - INRAE tres interessé par la dev et entierement dispo
- Rémi Planel : Pasteur, dispo - jupyter notebook
- Sarah Maman : INRAE, SIGENAE
- Yvan Le Bras : Organisateur - MMHN - Amoureux des GxIT et pecheur + compteur d'histoire d'encornets
## Introduction - Yvan
24 personnes ont assisté à cette session.
[Slides](https://drive.google.com/file/d/1lQ__SdJkJ0zqmFrc_imIl6VEvlloQqJy/view)
Yvan refait la présentation de lundi et une discussion se lance sur la reproductibilité lorsque l'on utilise des gxIT. Une bonne pratique est de prévoir dans l'interactive tool un enregistrement (traçage) des logs et des opérations qui sont faites sur les jeux de données. Cela se fait bien pour les applications Rshiny.
Il y a beaucoup d'utilisations imaginables des GxIT.
## Le point "VM" - Anthony et Lain
[Inventaires des VMs fraîches et dispo](https://docs.google.com/spreadsheets/d/1yoTIstEmC6DXVEc-gX0YNyaR7QoDsb7TJZ3sk_K9oyc/edit#gid=0)
## Mon premier GxIT : Installation de AskOmics ❅
### Installation du GxIT
Connexion à la machine:
- `ssh ubuntu@gat-${NUMBER}.fr.training.galaxyproject.eu`
On récupère l'xml de l'outils qu'on place dans le répertoire "tools" de galaxy:
- `mkdir -p /home/ubuntu/galaxy/files/galaxy/tools`
- `cd /home/ubuntu/galaxy/files/galaxy/tools`
- `wget https://raw.githubusercontent.com/galaxyproject/galaxy/dev/tools/interactive/interactivetool_askomics.xml`
### Configuration de galaxy
A PRIORI LA PREMIERE PARTIE barée N'EST PAS NECESSAIRE CAR LES OUTILS SONT AJOUTES DANS LE `tool_conf_interactive.xml.j2` DANS UNE SECTION D'OUTILS DEDIEE NOMMEE `Interactive Tools`
On ajoute le nom du xml de l'outils au fichier de conf d'ansible dans la section "galaxy_local_tools":
- `cd /home/ubuntu/galaxy`
- `vi group_vars/galaxyservers.yml`
Resultat final:
```
galaxy_local_tools:
- interactivetool_askomics.xml
```
On ajoute le nom du xml de l'outils au fichier de conf d'ansible dans la section tool_conf_interactive.xml.j2:
- `cd /home/ubuntu/galaxy`
- `vi templates/galaxy/config/tool_conf_interactive.xml.j2`
Créer une nouvelle section à la fin du fichier yml comme montré ci-dessous :
Resultat final:
```<toolbox monitor="true">
<section id="interactivetools" name="Interactive Tools">
<tool file="interactive/interactivetool_ethercalc.xml" />
<tool file="interactive/interactivetool_askomics.xml" />
</section>
</toolbox>
```
Les outils interactifs, après le lancement avec playbook, à activer se trouvent dans /srv/galaxy/server/tools/interactive/ et sont activés dans /srv/galaxy/local_tools/.
Éditer le fichier /home/ubuntu/galaxy/templates/galaxy/config/job_conf.xml.j2
```diff
--- templates/galaxy/config/job_conf.xml.j2
+++ templates/galaxy/config/job_conf.xml.j2
<destinations default="local">
<destination id="local" runner="local"/>
- <destination id="interactive_local" runner="pulsar_embedded">
+ <destination id="interactive_local" runner="local_plugin">
<param id="docker_enabled">true</param>
<param id="docker_volumes">$defaults</param>
<param id="docker_sudo">false</param>
<param id="docker_net">bridge</param>
<param id="docker_auto_rm">true</param>
<param id="docker_set_user"></param>
<param id="require_container">true</param>
- <param id="container_monitor_result">callback</param>
- <env id="REQUESTS_CA_BUNDLE">/etc/ssl/certs/ca-certificates.crt</env>
</destination>
</destinations>
<tools>
<tool destination="interactive_local" id="interactive_tool_ethercalc" />
+ <tool destination="interactive_local" id="interactive_tool_askomics" />
</tools>
```
Ce qui obtenu à la fin, pour le fichier job_conf.xml.j2 (pour les personnes qui n'ont pas fait la partie admin - qui sont parties d'une machine neuve):
```xml=
<job_conf>
<plugins workers="4">
<plugin id="local_plugin" type="runner" load="galaxy.jobs.runners.local:LocalJobRunner"/>
<plugin id="pulsar_embedded" type="runner" load="galaxy.jobs.runners.pulsar:PulsarEmbeddedJobRunner">
<param id="pulsar_config">/srv/galaxy/config/pulsar_app.yml</param>
</plugin>
</plugins>
<destinations default="local_destination">
<destination id="local_destination" runner="local_plugin"/>
<destination id="interactive_local" runner="local_plugin">
<param id="docker_enabled">true</param>
<param id="docker_volumes">$defaults</param>
<param id="docker_sudo">false</param>
<param id="docker_net">bridge</param>
<param id="docker_auto_rm">true</param>
<param id="docker_set_user"></param>
<param id="require_container">true</param>
</destination>
</destinations>
<tools>
<tool destination="interactive_local" id="interactive_tool_ethercalc" />
<tool destination="interactive_local" id="interactive_tool_askomics" />
</tools>
</job_conf>
```
Il faut que l'id du runner LocalJobRunner (id="local_plugin" ici, soit utilisé dans la destination de interactive_local runner="local_plugin").
Pour récapituler,
`<plugin id="local_plugin" type="runner" load="galaxy.jobs.runners.local:LocalJobRunner"/>`
`<destination id="local_destination" runner="local_plugin"/>`
on voit que la destination référence le runner local en utilisant son ID.