Provisionando Fedora CoreOS no Google Cloud Platform

Este guia mostra como provisionar novas instâncias do Fedora CoreOS (FCOS) no Google Cloud Platform (GCP).

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.

Fedora CoreOS tem um usuário padrão core que pode ser usado para explorar o sistema operacional. Se você quiser usá-lo, finalize sua configuração fornecendo, por exemplo, uma chave SSH.

Se você não quiser usar o Ignition para começar, você pode usar o suporte ao Afterburn.

Você também precisa ter acesso a uma conta do GCP. Os exemplos abaixo usam a ferramenta de linha de comando gcloud, que deve ser instalada separadamente e configurada de antemão.

Selecionando uma família de imagens

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

As imagens FCOS são publicadas no projeto fedora-coreos-cloud e ainda organizadas em famílias de imagens, rastreando o fluxo correspondente:

  • fedora-coreos-stable

  • fedora-coreos-testing

  • fedora-coreos-next

Antes de prosseguir, verifique os detalhes de cada fluxo de atualização e escolha o mais adequado para seu caso de uso.

Você pode inspecionar o estado atual de uma família de imagens da seguinte maneira:

Inspecionando uma família de imagens
STREAM='stable'
gcloud compute images describe-from-family \
    --project "fedora-coreos-cloud" "fedora-coreos-${STREAM}"

Iniciando uma instância de VM

Novas instâncias do GCP podem ser criadas e inicializadas diretamente a partir de imagens públicas do FCOS.

Se você deseja apenas acesso SSH e nenhuma personalização adicional, não precisa passar nenhum metadado de instância personalizado. Dependendo da configuração do projeto do GCP, as chaves públicas SSH relevantes serão adicionadas automaticamente à VM. Isso fornece uma maneira fácil de testar o FCOS sem primeiro criar uma configuração de Ignition.

Atualmente, não oferecemos suporte para login usando SSH por meio do console da Web do GCP, usando o método CLI gcloud compute ssh ou login do sistema operacional. Consulte fedora-coreos-tracker#648 para obter mais informações.
Iniciando uma nova instância
STREAM='stable'
NAME='fcos-node01'
ZONE='us-central1-a'
gcloud compute instances create              \
    --image-project "fedora-coreos-cloud"    \
    --image-family "fedora-coreos-${STREAM}" \
    --zone "${ZONE}" "${NAME}"
Você pode descobrir o IP atribuído à instância executando gcloud compute instances list

Agora você deve conseguir fazer SSH na instância usando o endereço IP associado.

Exemplo de conexão
ssh core@<endereço ip>

Para iniciar uma instância personalizada do FCOS, uma configuração válida do Ignition deve ser passada como metadados na chave user-data no momento da criação. No console da web, isso está disponível na seção Management. Na linha de comando, use --metadata-from-file:

Iniciando e personalizando uma nova instância
STREAM='stable'
NAME='fcos-node01'
ZONE='us-central1-a'
CONFIG='example.ign'
gcloud compute instances create                \
    --image-project "fedora-coreos-cloud"      \
    --image-family "fedora-coreos-${STREAM}"   \
    --metadata-from-file "user-data=${CONFIG}" \
    --zone "${ZONE} "${NAME}"
Por padrão, scripts de inicialização não são compatíveis com FCOS. Em vez disso, é recomendado codificar qualquer lógica de inicialização como unidades de serviço systemd na configuração do Ignition. Novamente, observe que você precisa usar a chave user-data para o Ignition; também não funcionará colar o Ignition neste campo no console da web.