etalab / transport-site

Rendre disponible, valoriser et améliorer les données transports
https://transport.data.gouv.fr
194 stars 30 forks source link

Déterminer comment se connecter à un node Elixir en cours d'exécution #1384

Closed thbar closed 1 year ago

thbar commented 3 years ago

Pour certaines opérations, il est très pratique de pouvoir se connecter via un shell Elixir à une instance en cours d'exécution (ex: vérification de #1380).

Je vais aller voir comment faire cela et le documenter.

Ce point est différent de la connection par SSH, déjà documentée ici.

NicolasBerthelot commented 3 years ago

On reviendra dessus

thbar commented 2 years ago

Je ré-ouvre, car ça aurait pu aider récemment sur https://github.com/etalab/transport-site/issues/2006

thbar commented 2 years ago

Pour l'instant, j'ai pu me connecter et lire les clés Cachex en local déjà, par exemple. Cela nécessite de fixer le secret cookie du cluster (ce qui n'est pas fait sur CleverCloud pour l'instant).

Étape 1 - démarrage du serveur en spécifiant un nom et la bonne tâche

J'ai repris ce qu'on utilise sur la production pour démarrer, et je préfixe comme suit:

elixir --sname foo --cookie mysecretcookie -S mix phx.migrate_phx.server

Voir https://stackoverflow.com/q/59219229/20302 pour l'explication sur le --sname plutôt que --name (j'avais une erreur sinon).

Étape 2 - sur la même machine dans un shell

iex --sname console --cookie mysecretcookie --remsh foo

Voir cet article qui explique les dangers de --remsh (tous les noeuds ont accès à tous les autres), et pourquoi on préfèrera faire tourner le shell sur la même machine.

On peut ensuite faire une requête proxy en local et voir la clé:

curl -I http://proxy.localhost:5000/resource/bibus-brest-gtfs-rt-alerts

Et taper ensuite dans la session "iex":

> Cachex.keys(Unlock.Cachex)
{:ok, ["resource:bibus-brest-gtfs-rt-alerts"]}

Prochaine étape - test sur prochainement

Je ne sais pas si ça marchera sur CleverCloud notamment à cause de l'aspect Docker.

Il faut donc tester pour vérifier, avant de tenter d'aller en production:

thbar commented 2 years ago

Nouvel intérêt de faire ça, éviter de créer un problème sur le site car un iex séparé crée ses propres connections Ecto (voir #1913).

thbar commented 2 years ago

Pour l'instant je clôture pour déclutter le backlog, mais ça reviendra sur le devant de la scène à un moment pour sûr.

thbar commented 1 year ago

Traité dans #2960.