Déployer Potato sur Jetstream2
Lancez une étude Potato sur Jetstream2, le cloud de recherche de la NSF, gratuitement avec une allocation ACCESS, via potato deploy et un identifiant OpenStack.
potato deploy up --provider openstack --cloud jetstream2 place une étude d'annotation sur Jetstream2, un cloud de recherche financé par la NSF, où elle ne coûte rien au-delà des unités de service de votre allocation. Les chercheurs des établissements américains obtiennent du temps sur Jetstream2 par une allocation ACCESS, si bien qu'une étude sans budget peut tout de même tourner sur une machine dédiée dont le disque survit aux redémarrages. Chaque instance reçoit un nom DNS sous projects.jetstream-cloud.org, si bien que les annotateurs voient un nom d'hôte ordinaire avec un certificat HTTPS ordinaire. Cette page exige Potato 2.10 ou une version ultérieure et une configuration que vous avez déjà exécutée avec potato start.
Obtenir une allocation et un identifiant Jetstream2
Jetstream2 fonctionne avec le logiciel de cloud OpenStack, et Potato y accède par OpenStack. Potato s'authentifie avec un application credential OpenStack, une clé liée à une seule allocation que vous pouvez révoquer indépendamment. Sa mise en place se fait en trois étapes :
- Demandez une allocation ACCESS Explore sur allocations.access-ci.org et sollicitez du temps CPU sur Jetstream2.
- Connectez-vous au tableau de bord Horizon de Jetstream2 sur js2.jetstream-cloud.org, créez un application credential et téléchargez son fichier
clouds.yaml. - Enregistrez le fichier sous
~/.config/openstack/clouds.yamlet nommez son entréejetstream2, le nom auquel sont rattachées les valeurs par défaut de Potato pour Jetstream2.
Installez ensuite l'extra OpenStack et vérifiez que l'identifiant fonctionne :
pip install 'potato-annotation[deploy-openstack]'
potato deploy providers --verifyDécider qui peut se connecter
potato deploy ne modifie pas vos réglages de connexion, et un nom d'hôte Jetstream2 est public. Si la configuration permet à n'importe qui de s'inscrire, l'exécution à blanc ci-dessous signale l'avertissement D003, « Anyone who finds the URL can register and annotate. » (Quiconque trouve l'URL peut s'inscrire et annoter.) Pour une étude en crowdsourcing, l'inscription libre est généralement voulue. Pour des annotateurs nommément désignés, listez-les sous user_config.users avec allow_all_users: false (Gestion des mots de passe) ou faites-les se connecter par votre établissement (Authentification SSO et OAuth) avant de déployer.
Vérifier le plan
Une exécution à blanc ne crée rien et affiche chaque étape du déploiement, le nom d'hôte qu'aura la tâche et ce que l'instance coûtera à votre allocation :
potato deploy up myproject/config.yaml --provider openstack --cloud jetstream2 --dry-runLe plan crée une instance m3.small de 2 vCPU à partir de l'image Featured-Ubuntu24, sur le réseau auto-alloué de votre allocation, avec une IP flottante issue du réseau public. Un groupe de sécurité n'autorise en entrée que les ports 22, 80 et 443. Comme l'utilisateur de connexion par défaut varie d'une image Jetstream2 à l'autre, Potato crée son propre utilisateur potato-deploy, qui détient une clé de déploiement générée pour ce déploiement. --size choisit un autre gabarit (flavor), --network désigne un réseau quand l'allocation n'en a pas d'auto-alloué, et --volume-gb ajoute un volume séparé pour les données de la tâche. Une m3.small consomme 2 unités de service (SU, la monnaie de l'allocation) par heure, soit environ 17 520 sur un an si elle reste allumée, donc détruisez l'instance à la fin de l'étude.
Déployer
Lancez la même commande sans --dry-run, et confirmez le plan quand Potato le demande :
potato deploy up myproject/config.yaml --provider openstack --cloud jetstream2La tâche est servie à https://potato-<name>.<allocation>.projects.jetstream-cloud.org, où <name> provient du nom de la tâche. Jetstream2 publie le nom DNS une ou deux minutes après l'attachement de l'IP flottante, et Potato l'attend avant de demander un certificat Let's Encrypt de 90 jours. Le déploiement se termine en affichant l'URL et le chemin du fichier de la clé d'administration, .potato/secrets.json à côté de votre configuration. La clé d'administration ouvre le tableau de bord d'administration à /admin.
Pendant l'étude, potato deploy status indique si le serveur et son certificat sont en bon état, et potato deploy logs myproject/config.yaml -f suit le journal du serveur. Relancer up après avoir modifié la configuration téléverse la nouvelle version sur la même instance.
Terminer l'étude
Les annotations se trouvent sur le disque de l'instance, qui est supprimé avec elle. Récupérez-les d'abord sur votre machine, vérifiez-les, puis supprimez l'instance :
potato deploy pull myproject/config.yaml
potato deploy destroy myproject/config.yamlpull écrit tout ce que le déploiement a collecté dans un nouveau répertoire potato-pull-<name>-<timestamp>. destroy refuse de s'exécuter sur un déploiement qui n'a jamais fait l'objet d'un pull. Une fois qu'il s'est exécuté, l'instance cesse de consommer des SU.
Clouds OpenStack de campus
Le même fournisseur fonctionne sur un cloud OpenStack de campus. Placez son entrée clouds.yaml sous le nom de votre choix et passez ce nom à --cloud. Sans les valeurs par défaut de Jetstream2, Potato utilise le gabarit m1.small, une image Ubuntu 24.04 et le réseau externe public, et --size, --os-image et --network les remplacent. Un cloud de campus ne donne pas de nom DNS à l'instance, si bien que la tâche est servie sur son IP flottante avec un certificat d'IP de courte durée, comme sur la cible AWS Lightsail.
Dépannage
« No --network given and this project has no auto-allocated network » signifie que l'allocation n'a pas de réseau par défaut. Créez un réseau et un routeur dans Horizon ou Exosphere et passez --network <name>.
Le certificat prend quelques minutes lors du premier déploiement, car le nom DNS doit se résoudre avant que Let's Encrypt puisse l'émettre.
Pour aller plus loin
- Exécuter Potato en local ou dans le cloud, pour les autres cibles cloud
- Déployer un serveur d'annotation, pour choisir un hébergeur
- Référence Jetstream2 et OpenStack