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
For automating Fedora CoreOS installations, it is expected that you will interact with stream metadata. While Fedora CoreOS does automatic in-place updates, it is generally recommended to start provisioning new machines from the latest images.
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 da AWS podem ser criadas diretamente a partir de imagens públicas do FCOS. Você pode encontrar a AMI mais recente para cada região na página de download.
Se você estiver interessado apenas em explorar FCOS sem personalização adicional, pode usar um par de chaves SSH registrado para o usuário padrão core
.
Para testar o FCOS dessa forma, você precisará executar o comando aws ec2 run-instances
e fornecer algumas informações para colocar a instância em funcionamento. A seguir está um exemplo de comando que você pode usar:
NAME='instance1'
SSHKEY='my-key' # o nome da sua chave SSH: `aws ec2 describe-key-pairs`
IMAGE='ami-xxx' # o ID da AMI encontrada na página de download
DISK='20' # o tamanho do disco
REGION='us-east-1' # a região alvo
TYPE='m5.large' # o tipo da instância
SUBNET='subnet-xxx' # a sub-rede: `aws ec2 describe-subnets`
SECURITY_GROUPS='sg-xx' # o grupo de segurança `aws ec2 describe-security-groups`
aws ec2 run-instances \
--region $REGION \
--image-id $IMAGE \
--instance-type $TYPE \
--key-name $SSHKEY \
--subnet-id $SUBNET \
--security-group-ids $SECURITY_GROUPS \
--tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=${NAME}}]" \
--block-device-mappings "VirtualName=/dev/xvda,DeviceName=/dev/xvda,Ebs={VolumeSize=${DISK}}"
Você pode descobrir o IP atribuído à instância executando aws ec2 describe-instances
|
Agora você deve conseguir fazer SSH na instância usando o endereço IP associado.
ssh core@<endereço ip>
Um exemplo mais completo que permite personalização é descrito em Provisionando Fedora CoreOS no Amazon Web Services.
Inicializando em um hipervisor local (exemplo do libvirt)
-
Obtenha a última imagem adequada para a plataforma
qemu
usandocoreos-installer
(ou baixe e verifique-a da web). Você pode usarcoreos-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
-
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" STREAM="stable" DISK_GB="10" # Para x86 / aarch64, IGNITION_DEVICE_ARG=(--qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=${IGNITION_CONFIG}") # Para s390x / ppc64le, IGNITION_DEVICE_ARG=(--disk path="${IGNITION_CONFIG}",format=raw,readonly=on,serial=ignition,startup_policy=optional) # Configura o rótulo correto do SELinux para permitir acesso à configuração chcon --verbose --type svirt_home_t ${IGNITION_CONFIG} 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}" \ --network bridge=virbr0 "${IGNITION_DEVICE_ARG[@]}"
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=fedora31 , 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' .
|
DISK_GB deve ser pelo menos tão grande quanto o tamanho padrão da imagem. Para o Fedora CoreOS, atualmente são 10 GB.
|
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 .
|
Você pode sair do console serial pressionando CTRL + ] .
|
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>
Explorando o sistema operacional
Depois que a VM terminar a inicialização, seus endereços IP aparecerão no console. 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
Recomendamos que todos os usuários assinem a lista de discussão coreos-status de baixo volume para avisos operacionais relacionados ao Fedora CoreOS.
Erros podem ser relatados no Fedora CoreOS Tracker.
Para perguntas ao vivo, sinta-se à vontade para entrar em contato na sala #coreos:fedoraproject.org no Matrix.
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.
Want to help? Learn how to contribute to Fedora Docs ›