Implantar o Potato no Jetstream2
Rode um estudo do Potato no Jetstream2, a nuvem de pesquisa da NSF, sem custo com uma alocação do ACCESS, usando o potato deploy e uma credencial OpenStack.
potato deploy up --provider openstack --cloud jetstream2 coloca um estudo de anotação no Jetstream2, uma nuvem de pesquisa financiada pela NSF, onde ele não custa nada além das unidades de serviço da sua alocação. Pesquisadores de instituições dos EUA obtêm tempo no Jetstream2 por meio de uma alocação do ACCESS, então um estudo sem orçamento ainda pode rodar em uma máquina dedicada, com um disco que sobrevive a reinicializações. Cada instância recebe um nome DNS sob projects.jetstream-cloud.org, então os anotadores veem um nome de host comum com um certificado HTTPS comum. Esta página exige o Potato 2.10 ou posterior e uma configuração que você já executou com potato start.
Obtendo uma alocação e uma credencial do Jetstream2
O Jetstream2 roda sobre o software de nuvem OpenStack, e o Potato o acessa pelo OpenStack. O Potato se autentica com uma credencial de aplicação do OpenStack, uma chave vinculada a uma única alocação que você pode revogar isoladamente. Configurar uma leva três passos:
- Solicite uma alocação ACCESS Explore em allocations.access-ci.org e peça tempo de CPU no Jetstream2.
- Faça login no painel Horizon do Jetstream2 em js2.jetstream-cloud.org, crie uma credencial de aplicação e baixe o arquivo
clouds.yamldela. - Salve o arquivo como
~/.config/openstack/clouds.yamle dê à entrada dele o nomejetstream2, que é o nome ao qual os padrões do Potato para o Jetstream2 estão vinculados.
Depois instale o extra do OpenStack e verifique se a credencial funciona:
pip install 'potato-annotation[deploy-openstack]'
potato deploy providers --verifyDecidindo quem pode fazer login
potato deploy não altera as suas configurações de login, e um nome de host do Jetstream2 é público. Se a configuração permite que qualquer pessoa se cadastre, a simulação abaixo informa o aviso D003, "Anyone who finds the URL can register and annotate." (Qualquer pessoa que encontrar a URL pode se cadastrar e anotar.) Em um estudo de crowdsourcing, o cadastro aberto costuma ser intencional. Para anotadores nominais, liste-os em user_config.users com allow_all_users: false (Gerenciamento de Senhas) ou faça com que entrem pela sua instituição (Autenticação SSO e OAuth) antes de implantar.
Conferindo o plano
Uma simulação não cria nada e exibe cada passo da implantação, o nome de host que a tarefa terá e quanto a instância vai custar à sua alocação:
potato deploy up myproject/config.yaml --provider openstack --cloud jetstream2 --dry-runO plano cria uma instância m3.small com 2 vCPUs a partir da imagem Featured-Ubuntu24, na rede alocada automaticamente da sua alocação, com um IP flutuante da rede public. Um grupo de segurança permite a entrada apenas pelas portas 22, 80 e 443. Como o usuário de login padrão varia entre as imagens do Jetstream2, o Potato cria o seu próprio usuário potato-deploy, com uma chave de implantação gerada para esta implantação. --size escolhe outro flavor, --network indica uma rede quando a alocação não tem uma alocada automaticamente, e --volume-gb acrescenta um volume separado para os dados da tarefa. Uma m3.small consome 2 unidades de serviço (SUs, a moeda da alocação) por hora, cerca de 17.520 ao longo de um ano se ficar ligada, então destrua a instância quando o estudo terminar.
Implantando
Execute o mesmo comando sem --dry-run e confirme o plano quando o Potato pedir:
potato deploy up myproject/config.yaml --provider openstack --cloud jetstream2A tarefa é servida em https://potato-<name>.<allocation>.projects.jetstream-cloud.org, em que <name> vem do nome da tarefa. O Jetstream2 publica o nome DNS um ou dois minutos depois que o IP flutuante é associado, e o Potato espera por ele antes de solicitar um certificado Let's Encrypt de 90 dias. Ao terminar, a implantação exibe a URL e o caminho do arquivo da chave de administrador, .potato/secrets.json, ao lado da sua configuração. A chave de administrador abre o painel do administrador em /admin.
Durante o estudo, potato deploy status informa se o servidor e o certificado estão em ordem, e potato deploy logs myproject/config.yaml -f acompanha o log do servidor. Executar up de novo depois de editar a configuração envia a nova versão para a mesma instância.
Encerrando o estudo
As anotações ficam no disco da instância, que é apagado junto com a instância. Primeiro baixe-as para a sua máquina, confira-as e só então remova a instância:
potato deploy pull myproject/config.yaml
potato deploy destroy myproject/config.yamlpull grava tudo o que a implantação coletou em um novo diretório potato-pull-<name>-<timestamp>. destroy não roda em uma implantação da qual nunca foi feito um pull. Depois que ele roda, a instância para de consumir SUs.
Nuvens OpenStack de campus
O mesmo provedor funciona em uma nuvem OpenStack de campus. Coloque a entrada dela no clouds.yaml com qualquer nome e passe esse nome para --cloud. Sem os padrões do Jetstream2, o Potato usa o flavor m1.small, uma imagem Ubuntu 24.04 e a rede externa public, e --size, --os-image e --network os substituem. Uma nuvem de campus não dá um nome DNS à instância, então a tarefa é servida no IP flutuante com um certificado de IP de curta duração, como no destino AWS Lightsail.
Solução de problemas
"No --network given and this project has no auto-allocated network" significa que a alocação não tem uma rede padrão. Crie uma rede e um roteador no Horizon ou no Exosphere e passe --network <name>.
O certificado leva alguns minutos na primeira implantação, porque o nome DNS precisa resolver antes que o Let's Encrypt possa emiti-lo.
Leitura adicional
- Executar o Potato localmente ou na nuvem, para os outros destinos na nuvem
- Implantar um servidor de anotação, para escolher um host
- Referência do Jetstream2 e do OpenStack