I am conducting a PoC for MaaS in version 3.4.0-14321-g.1027c7664, installed via packages.
MaaS is operational, and I believe the issue does not lie with MaaS itself but rather with the entire scenario, which I will try to explain below.
For hardware provisioning, we are using Cisco UCS Manager. These devices do not have internally attached disks, requiring the use of iSCSI disks for booting (due to the storage structure, this is the only available option).
When I activate a server, it boots normally via PXE and can be inventoried, but without disks.
To address this issue, I activated the iBFT module (kernel parameter: iscsi_auto), and that’s when things started to get strange.
With the iBFT parameter active, the two interfaces dedicated to iSCSI are configured, the iSCSI disk is presented to the operating system, but the interface where the rackd is located is not configured. Consequently, the squashfs download fails, resulting in a boot failure (it stops at initramfs prompt). If I manually run the dhclient command on the interface where the rackd is positioned, I can obtain an IP, but at this point, the installation automation has already stopped.
Things I have noticed and attempted without success:
I tried to configure the interface via a kernel parameter, using ip=<interface>:dhcp. I discovered that this kernel auto-configuration is not active (IP_PNP_*).
I recompiled the kernel, activating this option, but it also did not work (I tested it in another local environment, with VirtualBox, and the behavior was the same, no interface configuration).
I created a commissioning script that configured iSCSI, and it worked for commissioning. However, this would imply that every time I executed a deploy, a script in user-data would need to be passed with the iSCSI interface IPs, iqn, and everything else; this is not at all convenient (for this to work, users would need access to the UCS Manager to retrieve the IPs).
At this point, I am out of ideas to solve the problem.
MaaS still sends the IP parameter to the kernel without the autoconfig option (I don’t know if kernel use the first match or the last match, seems the first match).
Looking ahead in the kernel documentation, I found the following information:
off or none: don't use autoconfiguration
(do static IP assignment instead)
@alexsander-souza
In MaaS, I can send the logs for rackd and regiond, but we don’t have any other logs available because this issue occurs during the enlisting process.
from the logs, the request the rack got is missing the file name. (last two lines, a request for / returned 404), but in your screenshot we can see the host requiring the correct file (../jammy/stable/squashfs).
The last two lines were part of a test I conducted in the initramfs using wget. In the console, I executed a wget command as a demonstration to confirm that the network is operational.
Please refer to the attached video (+/- minute 8:00) for a visual representation of the command execution.
we have a bad interaction between initramfs-tools and open-iscsi, resulting in the boot interface not being configured. when the iscsi has a static address, the script creates a /run/net-$DEVICE.conf file for the iscsi interface. the existence of this file makes configure_networking() skip configuring the BOOTIF later.