Ideas on how best to set the clients provisioning NIC from DHCP to static once provisioning is complete

Problem:
I am provisioning hosts via foreman via DHCP, tftp, etc. I want to set this NIC to static IP, etc once it has been provisioned.
Expected outcome:
Same IP address as when provisioned but set to static IP, Mask, GW,DNS
Foreman and Proxy versions:

  • foreman-postgresql-3.10.0-1.el8.noarch
  • rubygem-hammer_cli_forema_remote_execution-0.3.0-1.fm3_10.el8.noarch
  • rubygem-foreman_discovery-24.0.1-1.fm3_10.el8.noarch
  • foreman-selinux-3.10.0-1.el8.noarch
  • rubygem-hammer_cli_foreman-3.10.0-1.el8.noarch
  • rubygem-hammer_cli_foreman_tasks-0.0.20-1.fm3_10.el8.noarch
  • rubygem-foreman_maintain-1.5.1-1.el8.noarch
  • rubygem-foreman_remote_execution-13.0.0-1.fm3_11.el8.noarch
  • foreman-installer-3.10.0-1.el8.noarch
  • foreman-cli-3.10.0-1.el8.noarch
  • foreman-redis-3.10.0-1.el8.noarch
  • rubygem-foreman-tasks-9.1.1-1.fm3_11.el8.noarch
  • foreman-dynflow-sidekiq-3.10.0-1.el8.noarch
  • foreman-installer-katello-3.10.0-1.el8.noarch
  • foreman-release-3.10.0-1.el8.noarch
  • foreman-3.10.0-1.el8.noarch
  • foreman-service-3.10.0-1.el8.noarch
  • foreman-proxy-3.10.0-1.el8.noarch
  • katello-selinux-5.0.2-1.el8.noarch
  • katello-client-bootstrap-1.7.9-2.el8.noarch
  • katello-repos-4.12.0-1.el8.noarch
  • rubygem-hammer_cli_katello-1.12.0-0.1.pre.master.20240122184453git9a6ae05.el8.noarch
  • katello-4.12.0-1.el8.noarch
  • foreman-installer-katello-3.10.0-1.el8.noarch
  • katello-common-4.12.0-1.el8.noarch
  • rubygem-katello-4.12.0-1.el8.noarch
  • katello-certs-tools-2.9.0-2.el8.noarch

Distribution and version:
Redhat 9.4
Other relevant data:

This should work out of the box if you configure your networks in Foreman with these options:

  • IPAM: DHCP
  • Boot Mode: Static
  • Configure other fields as appropriate for the network
  • Set at least DHCP proxy in the Proxies tab

With this setup, Foreman will setup DHCP for the provisioning setup, but the Kickstart will ensure IPs are configured statically in the installed OS. The default provisioning template does this here, where @static is inherited from the “Boot Mode” configured on the network.

Thanks so much areyus, I’ll give it a go.