Primeiros passos com Fedora CoreOS

Introdução

Fluxos

Existem três fluxos de atualização do Fedora CoreOS (FCOS) disponíveis: stable, testing e next. Em geral, você vai querer usar o stable, mas é recomendável executar algumas máquinas no testing e no next também e fornecer feedback.

Cada fluxo tem uma URL canônica representando seu atual estado no formato JSON, conhecido como "metadados de fluxo". Por exemplo, a URL de metadados de fluxo e stable é: https://builds.coreos.fedoraproject.org/streams/stable.json

Para automatizar as instalações do Fedora CoreOS, espera-se que você interaja com os metadados do fluxo. Embora o Fedora CoreOS faça atualizações automáticas no local, geralmente é uma boa prática iniciar o provisionamento de novas máquinas a partir das imagens mais recentes.

Para mais informações sobre o uso de metadados de fluxo, consulte Metadados de fluxo. Para mais sobre os fluxos disponíveis, consulte Fluxos de atualização.

Filosofia de provisionamento

O Fedora CoreOS não possui um disco de instalação separado. Em vez disso, toda instância inicia a partir de uma imagem de disco genérica personalizada na primeira inicialização via Ignition.

Cada plataforma possui lógica específica para recuperar e aplicar a primeira configuração de inicialização. Para implantações na nuvem, o Ignition reúne a configuração por meio de mecanismos de dados do usuário. No caso de instalação diretamente no hardware, o Ignition pode buscar sua configuração no disco ou em uma fonte remota.

Para mais informações sobre configuração, consulte a documentação Produzindo um arquivo de Ignition.

Início rápido

Inicializando em uma VM de nuvem (exemplo do AWS)

Novas instâncias do AWS podem ser criadas e inicializadas diretamente a partir de imagens públicas do FCOS. Você pode encontrar a última AMI para cada região a partir das Atualizações de fluxo, que também pode ser visualizado na página de download.

Se você estiver interessado apenas em explorar FCOS sem personalização adicional, pode usar diretamente um par de chaves SSH registrado para o usuário core padrão.

Para testar o FCOS dessa maneira, basta selecionar o par de chaves SSH relevante por meio de --key-name ao iniciar a nova instância:

Iniciando uma nova instância
SSH_KEY_NAME="minha-chave"
aws ec2 run-instances <other options> --image-id <ami> --key-name "${SSH_KEY_NAME}"

Para iniciar uma instância FCOS personalizada, uma configuração válida do Ignition deve ser passada com seus dados de usuário no momento da criação:

Iniciando e personalizando uma nova instância
aws ec2 run-instances <outras opções> --image-id <ami> --user-data file://example.ign
Por design, a configuração de inicialização em nuvem e os scripts de inicialização não são suportados no FCOS. Em vez disso, é recomendável codificar qualquer lógica de inicialização como unidades de serviço do systemd na configuração do Ignition.

Inicializando em um hipervisor local (exemplo do libvirt)

  1. Obtenha a última imagem adequada para a plataforma qemu usando coreos-installer (ou baixe e verifique-a da web). Você pode usar coreos-installer como um contêiner, ou no Fedora, instale pelos repos.

    STREAM="stable"
    # como um binário instalado:
    coreos-installer download -s "${STREAM}" -p qemu -f qcow2.xz --decompress -C ~/.local/share/libvirt/images/
    # ou como um contêiner:
    podman run --pull=always --rm -v $HOME/.local/share/libvirt/images/:/data -w /data \
        quay.io/coreos/coreos-installer:release download -s "${STREAM}" -p qemu -f qcow2.xz --decompress
  2. Inicie uma nova máquina via virt-install, usando o arquivo Ignition com suas personalizações.

    IGNITION_CONFIG="/caminho/para/exemplo.ign"
    IMAGE="/path/to/image.qcow2"
    VM_NAME="fcos-test-01"
    VPUS="2"
    RAM_MB="2048"
    DISK_GB="10"
    
    virt-install --connect="qemu:///system" --name="${VM_NAME}" --vcpus="${VCPUS}" --memory="${RAM_MB}" \
            --os-variant="fedora-coreos-$STREAM" --import --graphics=none \
            --disk="size=${DISK_GB},backing_store=${IMAGE}" \
            --qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=${IGNITION_CONFIG}"
virt-install requer que a imagem do sistema operacional e o arquivo Ignition sejam especificados como caminhos absolutos.
Dependendo da sua versão de virt-install, você talvez não será capaz de usar --os-variant=fedora-coreos-* e irá obter um erro. Nesse caso, você deve pegar uma variante mais antiga do Fedora (--os-variant=31, por exemplo). Você pode encontrar as variantes que são suportadas pela sua versão corrente de virt-install com osinfo-query os | grep '^\s*fedora'.
Certifique-se de que seu usuário tenha acesso a /dev/kvm. O padrão é permitir o acesso para todos, mas em algumas distribuições você pode precisar se adicionar ao grupo kvm.

Explorando o sistema operacional

Depois que a VM terminar a inicialização, seus endereços IP aparecerão no console serial. Por padrão, não há credenciais padrão codificadas.

Se você configurar uma chave SSH para o usuário padrão core, poderá fazer um acesso via SSH para VM e explorar o sistema operacional:

ssh core@<endereço ip>

Entrando em contato

Erros podem ser relatados no Fedora CoreOS Tracker.

Para perguntas em tempo real, sinta-se à vontade para entrar no canal IRC #fedora-coreos no freenode.

Para dúvidas e discussões mais longas relacionadas ao Fedora CoreOS, um fórum e uma lista de discussão estão disponíveis.