How to provision ARM arch servers?

I’ve got an Foreman server for X86_64…
is there a way to let it also manage ARM servers, or should I build a new instance on an ARM server ?

Looks like a duplicate of you:

I guess one topic is enough.

Regarding your request:

Syslinux does not support ARM, iPXE does. Howver, I would go for GRUB2. Does your ARM server has UEFI network boot support?

The following steps should be considered:

  • provide ARM GRUB2 binary on TFTP server
  • add corresponding filename option in DHCP configuration for ARM hosts (for aarch64 architecture 00:0b)
  • add corresponding Architecture (e.g. aarch64) and OS

“duplicate” : I was not seeing my first post, so redone it. sorry for that.

as the support.

  • how to get GRUB2 binaries and so on ? from iso distrib ?

  • how to you mix arm/x86_64 in the DHCP configuration ?

  • "corresponding Architecture " : I don’t see how to do that in my foreman server ? (I only see x86_64 and i386 ? )

  • UEFI : I think so. how to enable UEFI in Foreman ?

Yes, for example you could extract ./usr/lib/grub/arm64-efi/monolithic/grubnetaa64.efi from http://launchpadlibrarian.net/596862171/grub-efi-arm64-bin_2.06-2ubuntu7_arm64.deb and put it to /var/lib/tftpboot/grub2/.

In /etc/dhcp/dhcpd.conf:

...
if option architecture = 00:06 {
  filename "grub2/shim.efi";
} elsif option architecture = 00:07 {
  filename "grub2/shim.efi";
} elsif option architecture = 00:09 {
  filename "grub2/shim.efi";
} elsif option architecture = 00:0b {
  filename "grub2/grubnetaa64.efi";
} else {
  filename "pxelinux.0";
}
...

For example:

[root@foreman ~]# hammer arch create --name aarch64 --operatingsystem-ids 1

Foreman server is absolutely independent of the hosts you want to provision. No need to run Foreman server in UEFI mode, also Foreman server architecture can be different from the host’s architecture. Depending on how network (or PXE) boot is working on the ARM server, you would need to set PXE loader to Grub2 UEFI.

Interesting part is then this ARM specific device tree (dts/dtb) stuff, at least in the SoC world. Not sure how this is solved on modern ARM servers. Maybe they have UEFI implementation serving as interface to the OS to retrieve HW specific information, maybe not. Would be good to get a vendor name and model to check what you can expect from it.