Provisionando Fedora CoreOS no Vultr

This guide shows how to provision new Fedora CoreOS (FCOS) nodes on Vultr. Vultr publishes FCOS images, but they are out of date, so we do not recommend using the standard Vultr images. Instead, a current FCOS release can be uploaded as a custom image.

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.

Fedora CoreOS tem um usuário padrão core que pode ser usado para explorar o sistema operacional. Se você quiser usá-lo, finalize sua configuração fornecendo, por exemplo, uma chave SSH.

Se você não quiser usar o Ignition para começar, você pode usar o suporte ao Afterburn.

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. Fetch the latest image suitable for your target stream (or download and verify it from the 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)"
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 can find out the instance’s assigned IP by running vultr-cli instance list.

Agora você deve conseguir fazer SSH na instância usando o endereço IP associado.

Exemplo de conexão
ssh core@<endereço ip>