Primeiros passos com Fedora CoreOS

Introdução

Fluxos de atualização

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.

Cada stream tem uma URL canônica representando seu atual estado no formato JSON. Por exemplo, a URL para a stream estável é: https://builds.coreos.fedoraproject.org/streams/stable.json

Enquanto o FedoraCoreOS realiza atualizações locais automáticas, é geralmente uma boa prática começar a provisão de novas máquinas pelas últimas imagens. O formato deste arquivo JSON é estável, e você pode sincronizá-lo para encontrar a última ISO/AMI/etc.

Para mais informações sobre fluxos e como alternar entre eles, 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 por Update Streams, que também pode ser visualizado em: 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.
Depending on your version of virt-install, you may not be able to use --os-variant=fedora-coreos-* and will get an error. In this case, you should pick an older Fedora variant (--os-variant=fedora31 for example). You can find the variants that are supported by you current version of virt-install with osinfo-query os | grep '^\s*fedora'.
Make sure that your user has access to /dev/kvm. The default is to allow access for everyone, but on some distributions you may need to add yourself to the kvm group.

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.