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 que defina as chaves autorizadas SSH para o usuário principal. Se você não tiver um, consulte Produzindo um arquivo de Ignition. Enquanto a documentação do Vultr menciona cloud-init e scripts, FCOS não tem suporte a cloud-init ou a capacidade de executar scripts de dados do usuário. Ele aceita apenas arquivos de configuração do Ignition.

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 de destino (ou baixe e verifique-a da 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}"

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 em NYC. Use vultr-cli regions list e vultr plans list para outras opções.

SNAPSHOT_ID='...'
REGION='1'
PLAN='201'
vultr-cli server create --snapshot "${SNAPSHOT_ID}" --region "${REGION}" --plan "${PLAN}" --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.