Provisionando Fedora CoreOS no Vultr

Este guia mostra como provisionar novos nós Fedora CoreOS (FCOS) no Vultr. As imagens FCOS atualmente não são publicadas diretamente no Vultr, mas podem ser carregadas como imagens personalizadas.

Pré-Requisitos

Antes de provisionar uma máquina FCOS, você deve ter um arquivo de configuração do Ignition contendo suas personalizações. Se você não tiver um, consulte Produzindo um arquivo de Ignition.

Se você não quiser usar o Ignition para começar, você pode usar o suporte ao Afterburn e fornecer uma chave SSH por meio do provedor de nuvem e continuar a partir daí.

While the Vultr documentation mentions cloud-init and scripts, FCOS does not support cloud-init or the ability to run scripts from user-data. It accepts only Ignition configuration files.

Você também precisa ter acesso a uma conta Vultr. Os exemplos abaixo usam as ferramentas de linha de comando vultr-cli e s3cmd.

Usando um snapshot personalizado

Vultr tem suporta à criação de snapshots personalizados de imagens raw públicas.

Estas etapas mostram como fazer download de uma imagem FCOS e upload em um intervalo de armazenamento existente, a fim de criar um snapshot a partir disso.

Veja a documentação do Vultr para mais detalhes sobre como criar um bucket e configurar s3cmd para usá-lo.

Criando um snapshot

O Fedora CoreOS vem em três fluxos, com diferentes agendas de atualização por fluxo. Essas etapas mostram o fluxo stable como um exemplo, mas também pode ser usado para outros fluxos.

  1. Obtenha a imagem mais recente adequada para o seu fluxo alvo (ou baixe e verifique na web).

    STREAM='stable'
    coreos-installer download -s "${STREAM}" -p vultr -f raw.xz --decompress
  2. Use s3cmd para fazer upload da imagem raw para seu bucket e observe sua URL pública.

    BUCKET='meu-bucket'
    FCOS_VERSION='...'
    s3cmd put -P "fedora-coreos-${FCOS_VERSION}-vultr.x86_64.raw" "s3://{BUCKET}/"
  3. Crie o snapshot a partir da URL do seu objeto e observe seu ID.

    IMAGE_URL='https://...'
    VULTR_API_KEY='<token>'
    vultr-cli snapshot create-url -u "${IMAGE_URL}"
Você precisará aguardar o processamento do snapshot antes de usá-lo. Monitore com vultr-cli snapshot list.

Iniciando uma instância de um snapshot

Agora você pode criar uma instância Vultr do FCOS usando o ID do snapshot acima.

Este exemplo cria uma instância com 1 vCPU e 1 GB de RAM chamada instance1 na região de Nova Jersey. Use vultr-cli regions list e vultr plans list para outras opções.

NAME='instance1'
SNAPSHOT_ID='...'
REGION='ewr'
PLAN='2-1c-1gb'
vultr-cli instance create --region "${REGION}" --plan "${PLAN}" --snapshot "${SNAPSHOT_ID}" --label "${NAME}"  --host "${NAME}" --userdata "$(cat example.ign)"
O firewall padrão do Vultr não permite conexões SSH de entrada. As regras devem ser ajustadas se você deseja alcançar a instância por SSH.