Provisionando Fedora CoreOS no Exoscale

Este guia mostra como provisionar novas instâncias do Fedora CoreOS (FCOS) em Exoscale Cloud Hosting.

Pré-requisitos

Antes de provisionar uma máquina FCOS, é recomendado 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.

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

Você também precisa ter acesso a uma conta Exoscale. Registre-se, se você não tiver uma.

Carregando uma imagem FCOS como um Template personalizado

Exoscale offers official FCOS templates, but they are currently out of date. For now, we recommend creating your own template. Track progress on fixing this in #1166.

Exoscale provides Custom Templates to be able to upload any cloud image. To create a Custom Template you first need to download and decompress the image.

Download and decompress the QCOW2 image with coreos-installer
STREAM="stable"
coreos-installer download -d -s "${STREAM}" -p exoscale -f qcow2.xz

Alternatively, QCOW2 images can be downloaded from the download page and manually decompressed.

Next you can Register a Custom Template. This can be done from the Web Portal or the Exoscale CLI. Either option requires the uncompressed image to be uploaded somewhere public and for the URL and an MD5 checksum to be provided during registration. One option is to use the object storage provided by Exoscale to host the image.

Upload to Object Storage and create Custom Template
# Set the version and calcuate the checksum
FCOS_VERSION='...'
FILE="fedora-coreos-${FCOS_VERSION}-exoscale.x86_64.qcow2"
CHECKSUM=$(md5sum $FILE | cut -d " " -f 1)

# Upload to object storage
BUCKET='newbucket'
exo storage mb "sos://${BUCKET}"
exo storage upload --acl public-read $FILE "sos://${BUCKET}/image-import/"

# Create the template using given URL and CHECKSUM
URL=$(exo storage show "sos://${BUCKET}/image-import/$FILE" --output-template "{{.URL}}")
TEMPLATE="fedora-coreos-${FCOS_VERSION}"
exo compute instance-template register --boot-mode=uefi $TEMPLATE $URL $CHECKSUM

You can then view the template using exo compute instance-template show --visibility=private $TEMPLATE.

Iniciando uma instância de VM

You can provision a FCOS instance using the Exoscale Web Portal or via the Exoscale CLI.

You will need to use at least version v1.54.0 of the Exoscale CLI.
Do not use the --cloud-init-compress argument to the CLI. It causes the Ignition config to be passed compressed to the instance and Ignition doesn’t tolerate that.
Add your ssh-key
exo compute ssh-key register key-name /path/to/key
Iniciando uma nova instância com Exoscale CLI
NAME='worker'
TYPE='standard.medium'
DISK='10' # in GiB
SSHKEY='key-name'
TEMPLATE=$TEMPLATE # template name set above
exo compute instance create $NAME \
    --disk-size $DISK \
    --ssh-key $SSHKEY \
    --template $TEMPLATE \
    --template-visibility private \
    --cloud-init "path/to/ignition-file.ign"
If just SSH access is desired and no further customization is required, you don’t need to pass any Ignition file and can omit the --cloud-init argument.
You can find out the instance’s assigned IP by running exo compute instance show $NAME

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

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