Auto Provisioning¶
While you can provision a node into a live installer, and finish the install with a keyboard and mouse, repeating this process for thousands of nodes is not ideal. This process is distro specific:
| Distro | Method |
|---|---|
| Debian | Preseed |
| Ubuntu | Autoinstall |
| Rocky | Anaconda |
| RHEL | Anaconda |
Provision Templates¶
Kickstart and other provision templates are rendered through Go text templates. You can find some simple example templates here. In these templates, you can call any package functions defined in the text/template package as well as what Grendel adds below:
Ubuntu¶
In order to use Autoinstall, we will need a template in /var/lib/grendel/templates/ubuntu-autoinstall.tmpl. An example file can be found here, modify as needed.
Then update the grendel image to include a new template: "user_data": "/var/lib/grendel/templates/ubuntu-autoinstall.tmpl"
You will need to make sure your cmdline includes the following:
autoinstall cloud-config-url=/dev/null ds=nocloud-net;s={{ $.endpoints.CloudInitURL }}
Rocky¶
In order to use Kickstart, we will need a template in /var/lib/grendel/templates/rocky-kickstart.tmpl. An example file can be found here, modify as needed.
Then update the grendel image to include a new template: "user_data": "/var/lib/grendel/templates/rocky-kickstart.tmpl"
The kernel command line will need the following: inst.ks={{ $.endpoints.KickstartURL }}.