- I’m working on automated Ubuntu server installs. Which are working fine.
- I have an extensive file with more than 200 lines.
- Obviously I should use version control and I should split content into individual files instead of modifying a big monolithic file.
- I’m also working on automated server installs for RPM based distributions (Fedora, Centos…) with Kickstart.
- Kickstart has an include command which lets me source other kickstart files. Can I achieve something similar with autoinstall/cloud-config formatted yaml files?
- It doesn’t have to work like %include, just chopping the big file into smaller pieces and assemble or render the main file from the pieces in order would be a big help.
- I haven’t used MAAS yet. if there is a different way how this is supposed to be done or what can be recommended for curtin/subiquity I will take a look at it.
I use ksflatten -c "${input_file}" -o "${output_file}"
to generate a flat monolithic ks.cfg file, which I can put on a virtual ISO labeled “OEMDRV” in VirtualBox and run the installer without interaction. This way I can install Fedora Server, Centos Server, Fedora Workstation with Gnome and others while maintaining a set of simple *.ks files which may not apply to every configuration so I can comment them out or remove them for further testing. You may understand it a bit better whe you take a look at this: https://pagure.io/fedora-kickstarts/tree/main
https://gist.github.com/s3rj1k/55b10cd20f31542046018fcce32f103e#file-howto
Imagine you want to break up the file in sections like ssh
, late-commands
, user-data
and others. late-commands
and user-data
may contain items with comments like »remove unwanted packages«, »configure motd« and much more which should be separate files on their own. As I said my file is over 200 lines long. Is there some yaml wizard around here who can do jq
like kungfu with yaml? yq didn’t look convincing a few days ago when I tried to find answers for this problem.