How to pre-configure Fedora

I need to install Fedora KDE or Workstation on several devices, with some preconfigured settings (separate /home partition, available languages, KDE settings, GNOME extensions, etc.).

When first booted, I want the computer to boot into the “create new user” part of the installation. Additionally, I want my custom languages to be available for that new user, but not for the log-in screen itself (as non-Latin languages, esp. RtL ones, cause problems there).

Is this possible without drive cloning*? Also, is there some way to do this without overriding a USB stick repeatedly?

*I don’t have the equipment and I can’t guarantee my devices will all be the same models.

Specifically the kind of changes I need to make:

  • System language
  • Timezone
  • Enabled user languages (system language + English + others)
  • On GNOME, Replace Extensions with Extension Manager and install and enable some extensions by default
  • Install Bazaar and make it the default for opening flatpak URLs
  • Install Chrome flatpak and make it the default
  • Change system font to Noto Sans

Have a look into Kickstart deployments, or Ansible.

3 Likes

Kickstart seems like what I’m looking for, thanks. I don’t want the machines to keep being linked to my own after installation.

Though, can kickstart make all the changes I described, or is it limited to Anaconda options?

I’m pretty sure it can make all the changes you require, the different spins use Kickstart.
I’m not really a pro in the area though, so you will have to wait for others to post here or make a new Kickstart specific post or read up on it yourself.

I would suggest to start to write your Kickstart config, and if you run into difficulties or a config option you can’t find, ask in a new thread or on the Matrix chat chat.fedoraproject.org

2 Likes

Interesting post from another user a few months back:

They say:

Right now I have been able to achieve the following, but using information that is not present in the official documentation:

  • Install flatpaks as part of the live environment
  • Apply Gnome settings / custom wallpapers
  • Install / uninstall packages and/or gnome extensions

So it sounds like (at least the majority of) what you want should be possible, but will probably need a bit of digging and asking around.

2 Likes

Any user-specific setting will be difficult with Anaconda as the user and their home does not exist, yet. You might be able to achieve some things by placing files in /etc/skel, but there is no simple answer for that.

2 Likes

Or maybe by creating /etc/gnome-initial-setup/vendor.conf to presupply options to the gnome-initial-setup app.

But I’m just basing this on a casual read - no practical experience of actually doing it!

And then OP also mentioned KDE, which would be a different case since we don’t (yet) use KDE’s initial-user-creation mechanism.

1 Like

In kickstart there is a post-install section that you can do a huge range of things in. I have used that to download a tarball and install it’s contents on the disk for example.

You can also do things like install a systemd service that on first boot does all the customisation steps that are harder to do in kickstart.

3 Likes

Does this mean you wouldn’t be able to choose a password? This will be people’s first Linux experience, so I’d rather in that case disable the password completely, but I’m not sure if that’ll open any over-the-network security holes, or if it’s even supported at all.

For KDE, you should be able to do it in the kickstart (in the “user” section). But I don’t think there’s an easy way to let the user set up their own password manually, while having the rest of the setup be automated.

The difference here is that in the KDE edition (until the change planned for Fedora 44), initial user setup is the responsibility of the installer, not of KDE’s “initial setup experience”.

In Workstation, it’s gnome-initial-setup that does this.

1 Like