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 has a default core user that can be used to explore the OS. If you want to use it, finalize its configuration by providing e.g. an SSH key.

If you do not want to use Ignition to get started, you can make use of the Afterburn support.

You also need to have access to an OpenStack environment and a functioning openstack CLI. Typically, you’ll configure the client by using a clouds.yaml file or via environment variables. If you’re starting from scratch, this environment may need networks, SSH key pairs, security groups, etc.. set up. Please consult the OpenStack Documentation to learn more.

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

Alternatively, you can manually download an OpenStack image from the download page. Verify the download, following the instructions on that page, and decompress it.

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.

Lançando 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.

Lançando 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.

Example connecting
ssh core@<ip address>