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.

You also need to have access to a Vultr account. The examples below use the vultr-cli and s3cmd command-line tools. Both of these tools are available in Fedora and can be installed via sudo dnf install vultr-cli 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 to upload the raw image to your bucket, and note its public URL.

    BUCKET='my-bucket'
    FCOS_VERSION='...'
    s3cmd put --acl-public "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.

This example creates a 2 vCPU, 4GB RAM instance named instance1 in the New Jersey region. Use vultr-cli regions list and vultr-cli plans list for other options.

NAME='instance1'
SNAPSHOT_ID='...'
REGION='ewr'
PLAN='vc2-2c-4gb'
vultr-cli instance create --region "${REGION}" --plan "${PLAN}" --snapshot "${SNAPSHOT_ID}" --label "${NAME}"  --host "${NAME}" --userdata "$(cat example.ign)"

You can now get the IP address of the instance by running vultr-cli instance list.