Provisionando Fedora CoreOS no Exoscale

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


Before provisioning an FCOS machine, it is recommended to have an Ignition configuration file containing your customizations. If you do not have one, see Producing an Ignition File.

Se você não quiser usar o Ignition para começar, você pode usar o suporte ao Afterburn e fornecer uma chave SSH por meio do provedor de nuvem e continuar a partir daí.

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
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
CHECKSUM=$(md5sum $FILE | cut -d " " -f 1)

# Upload to object storage
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}}")
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.

Launching a VM instance

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.
Iniciando uma nova instância com Exoscale CLI
DISK='10' # in GiB
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 you can omit the --cloud-init argument.

Now you can find the IP address of the instance via exo compute instance show $NAME and SSH into the instance. If you didn’t change the defaults, the username is core and ssh core@$IP should work.