Provisionando Fedora CoreOS no DigitalOcean

Este guia mostra como provisionar novos nós do Fedora CoreOS (FCOS) no DigitalOcean. As imagens do Fedora CoreOS atualmente não são publicadas diretamente no DigitalOcean, então você deve baixar uma imagem de Fedora CoreOS do DigitalOcean e enviá-la para sua conta DigitalOcean como imagem personalizada.

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.

Você também precisa ter acesso a uma conta DigitalOcean. Os exemplos abaixo usam a ferramenta de linha de comando doctl.

Criando uma imagem personalizada do DigitalOcean

O Fedora CoreOS é projetado para ser atualizado automaticamente, com horários diferentes por fluxo.

  1. Depois de escolher o fluxo relevante, encontre a imagem DigitalOcean correspondente na página de download e copie a URL do link de download.

  2. Crie a imagem personalizada:

    Exemplo de upload de FCOS para uma imagem personalizada DigitalOcean
    doctl compute image create my-fcos-image --region sfo2 --image-url <url-de-download>
    # Aguarde a criação da imagem para finalizar
    while ! doctl compute image list-user | grep my-fcos-image; do sleep 5; done

Iniciando um droplet

  1. Se você ainda não fez upload de uma chave SSH para DigitalOcean, faça upload de uma:

    Exemplo de upload de uma chave SSH para DigitalOcean
    doctl compute ssh-key create my-key --public-key "$(cat ~/.ssh/id_rsa.pub)"
  2. Inicie um droplet. A configuração do Ignition pode ser passada para a VM como dados de usuário, ou você pode pular a passagem de dados do usuário se quiser apenas acesso SSH. Isso fornece uma maneira fácil de testar o FCOS sem primeiro criar uma configuração de Ignition.

    Ao criar um droplet para FCOS da DigitalOcean, você deve especificar uma chave SSH para o droplet, mesmo se você planeje injetar chaves SSH por meio do Ignition.

    Exemplo de inicialização do FCOS no DigitalOcean usando um arquivo de configuração do Ignition
    image_id=$(doctl compute image list-user | grep my-fcos-image | cut -f1 -d\ )
    key_id=$(doctl compute ssh-key list | grep my-key | cut -f1 -d\ )
    doctl compute droplet create my-fcos-droplet --image "${image_id}" --region sfo2 --size 2gb --user-data-file <caminho-config-ignition> --ssh-keys "${key_id}" --wait

    Enquanto a documentação do DigitalOcean menciona cloud-init e scripts, FCOS não suporta cloud-init ou a capacidade de executar scripts de dados do usuário. Ele aceita apenas arquivos de configuração do Ignition.