Problem:
Trying to Deploy Alma Linux 9 hosts with synced content (have previously only used upstream Repos for deployment).
Installing from media (upstream kickstart repos) works, installing from synced content fails.
During the boot process, the installer stalls out at ‘a start job is running for on /dev/zram0’, and once passing this point, the anaconda installer fails with service.org.fedoraproject.anaconda.modules.storage exited with status 1.
As part of troubleshooting, I created a new ‘installation media’ configuration using the pulp ‘published at’ url for the synced kickstart repo. This also didn’t work, due to a trailing / in the url breaking the kickstart_default_ipxe template. Cloning the template and changing the kernel and initrd lines from “#{@host.url_for_boot(:kernel)}” to “#{@host.url_for_boot(:kernel).sub(‘//images’, ‘/images’)}” to remove the trailing slash causes this to succeed for the synced install media- although I’m not sure if this is a band-aid over a different problem. Using this new template still results in the previous anaconda failure when using the synced content (even though I would expect this to be the same repo url and otherwise identical) as a provisioning source, even though the template renders the url the same when doing a preview (previewing with the synced content set also includes the appstream kickstart repo).
I suspect that there is another template that is being rendered differently or some other behavior at hand when provisioning from synced content vs installation media url, or a kernel command line argument that needs to be passed, but I can’t find out which template would have this information to correct it.
Expected outcome:
Provisioning from Synced content works successfully like installed media with same templates.
Foreman and Proxy versions:
3.16. Updating is ‘on the todo list’….
Foreman and Proxy plugin versions:
copy paste:
| foreman-tasks | The goal of this plugin is to unify the way of showing task statuses across the Foreman instance. It defines Task model for keeping the information about the tasks and Lock for assigning the tasks to resources. The locking allows dealing with preventing multiple colliding tasks to be run on the same resource. It also optionally provides Dynflow infrastructure for using it for managing the tasks. | Ivan Nečas | 11.0.5 |
|---|---|---|---|
| foreman_ansible | Ansible integration with Foreman | Daniel Lobato Garcia | 17.0.2 |
| foreman_bootdisk | Plugin for Foreman that creates iPXE-based boot disks to provision hosts without the need for PXE infrastructure. | Dominic Cleal | 23.1.2 |
| foreman_openscap | Foreman plug-in for managing security compliance reports | slukasik@redhat.com | 11.1.1 |
| foreman_puppet | Allow assigning Puppet environments and classes to the Foreman Hosts. | Ondřej Ezr and Shira Maximov | 9.0.0 |
| foreman_remote_execution | A plugin bringing remote execution to the Foreman, completing the config management functionality with remote management functionality. | Foreman Remote Execution team | 16.2.3 |
| foreman_templates | Engine to synchronise provisioning templates from GitHub | Greg Sutcliffe | 10.0.10 |
| foreman_webhooks | Plugin for Foreman that allows to configure Webhooks. | Timo Goebel | 4.0.2 |
| katello | Katello adds Content and Subscription Management to Foreman. For this it relies on Candlepin and Pulp. | N/A | 4.18.1 |
| puppetdb_foreman | Disable hosts on PuppetDB after they are deleted or built in Foreman. Follow GitHub - theforeman/puppetdb_foreman: PuppetDB proxy in Foreman · GitHub and raise an issue/submit a pull request if you need extra functionality. You can also find some help via the Foreman support pages (Foreman :: Support). | Daniel Lobato Garcia | 6.0.2 |
Distribution and version:
AlmaLinux 9
Other relevant data:
Error seems to mimic behavior in this thread: PXEboot files from 9.1 fail - Rocky Linux Help & Support - Rocky Linux Forum
That was pointing to an inst.stage2 option being missing, however the only refrence to this I could find in the templates assigned was in kickstart_kernel_options:
if host_param('kickstart_liveimg') options.push("inst.stage2=#{medium_uri}") end
Which I wouldn’t expect to be evaluated differently when changing the repo..