Provisionando Fedora CoreOS no OpenStack

Esse guia mostra como provisionar novos nós Fedora CoreOS (FCOS) em um ambiente de Nuvem OpenStack, seja este privado ou público (como VEXXHOST).

Os passos abaixo foram testados na relase "Victoria' do OpenStack.

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 deve ter acesso a um ambiente OpenStack e a uma CLI openstack funcional. Tipicamente, você irá configurar o cliente usando um arquivo clouds.yaml ou via variáveis de ambiente. Se você está começando do 0, esse ambiente deve precisar de redes, pares de chave SSH, grupos de segurança, etc…​ configure. Por favor consulte a Documentação do OpenStack para aprender mais.

Baixando uma imagem OpenStack

Fedora CoreOS é designado para ser atualizado automaticamente, com diferentes rotinas por fluxo. Uma vez que você tenha escolhido o fluxo relevante, faça o download, verifique e descomprima a última imagem OpenStack:

Para mais informações sobre ofertas de Fluxos FCOS veja Fluxo de atualizações.
STREAM='stable'
coreos-installer download --decompress -s $STREAM -p openstack -f qcow2.xz

Alternativamente, você pode baixar manualmente uma imagem OpenStack da página de downloads. Verificar o download, seguindo as instruções nessa página, e descomprimir.

Realizando o upload da imagem para o OpenStack

Crie a imagem FCOS no OpenStack
FILE=fedora-coreos-XX.XXXXXXXX.X.X-openstack.x86_64.qcow2
IMAGE=${FILE:0:-6} # pull off .qcow2
openstack image create --disk-format=qcow2 --min-disk=10 --min-ram=2 --progress --file=$FILE $IMAGE
If you’re uploading an aarch64 disk image then add --property architecture=aarch64.
Monitore o processo de criação de imagem listando a imagem
openstack image list --name=$IMAGE

Once the image is listed as active, it’s ready to be used.

Iniciando uma instância de VM

Agora que você tem uma imagem criada na sua conta você pode lançar uma instância de VM. Você terá que especificar vários detalhes de informação no comando, como a versão da instância, informação de rede, chave SSH, etc…​

Você também precisará da configuração Ignition que você criou anteriormente. Aqui está representado no comando de exemplo como ./example.ign, que indica um arquivo no diretório corrente nomeado example.ign.

Iniciando uma instância de VM
OPENSTACK_NETWORK=private
OPENSTACK_KEYPAIR=mykeypair # optional
OPENSTACK_FLAVOR=v1-standard-2
INSTANCE_NAME=myinstance # choose a name
openstack server create            \
     --key-name=$OPENSTACK_KEYPAIR \
     --network=$OPENSTACK_NETWORK  \
     --flavor=$OPENSTACK_FLAVOR    \
     --image=$IMAGE                \
     --user-data ./example.ign     \
     $INSTANCE_NAME
Especificar --key-name é opcional se você prover uma chave SSH na sua configuração Ignition.
Monitor progress of the instance creation with openstack server show $INSTANCE_NAME. You can also use the --wait parameter when calling openstack server create to block until the instance is active.

Next, if the instance’s network isn’t externally facing and you’d like to SSH into it from outside the OpenStack environment, you will have to assign a public IP to the instance:

Crie e assinale um IP flutuante
OPENSTACK_NETWORK=public
openstack floating ip create $OPENSTACK_NETWORK

FLOATING_IP=1.1.1.1  # do ip flutuante recém-criado
openstack server add floating ip $INSTANCE_NAME $FLOATING_IP

You now should be able to SSH into the instance using the floating IP address.

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