What is Fedora CoreOS?

Fedora CoreOS is Fedora’s immutable server distro. Sort of like what Silverblue is for workstations, but for servers and virtual machines that normally run headless containerized services.

It’s supposed to be a minimal container host where you are meant to make as few changes as possible to the host FS, config or packages. Everything should run in a container.

You can technically use it like any Fedora server OS, even run Ansible against it, the main difference is evident if you try to install packages, or modify files in certain mount points. But the intended use is to not make any modifications to the host OS and run everything in a container.

How I use it

I personally use it with Terrform to deploy servers on vSphere or cloud providers like Digitalocean, with each service defined as a Quadlet. My aim is to not do any post-configuration but rather have everything done on the first boot.

Everything you want to do at first boot is defined by Ignition, which is similar to cloudinit used by other distros.

So it requires a fairly radical shift in thinking if you want to avoid running Ansible after first boot. For example, how do you restore state for database servers?

My goal is to be able to run terrform destroy and terraform apply over and over and get the same results, a type of idempotency, but without the complexity of kubernetes.

See also