Setup a device by using FDO and the Simplified Provisioner
Prerequisites
-
You have installed and configured the FDO services as described in:
-
If using libvirt make sure the FDO server ports are reachable from the VMs
# firewall-cmd --zone libvirt \ --add-port=8080/tcp \ --add-port=8081/tcp \ --add-port=8082/tcp \ --permanent # systemctl restart firewalld
-
You have downloaded the Simplified Provisioner ISO image and booted the device from it by using one of the methods described in Booting the Simplified Provisioner.
Edit the boot parameters
Once device has been booted from the Simplified Provisioner the boot menu shows the following options:
Install Fedora 40 Test this media & install Fedora 40 Troubleshooting -->
-
Select "Install Fedora 40" and press the "[e]" key to edit the menu entry.
-
Make sure the installation device variable (
coreos.inst.install_dev
) is correct and append the manufacturing parameters (fdo.manufacturing_server_url=http://192.168.122.1:8080 fdo.diun_pub_key_insecure=true
) to thelinux
line if not present:### BEGIN /etc/grub.d/10_linux ### menuentry 'Install Fedora 40' --class fedora --class gnu-linux --class gnu --class os { linux images/pxeboot/vmlinuz rd.neednet=1 coreos.inst.crypt_root=1 coreos.inst.isoroot=Fedora-40-IoT-x86_64 coreos.inst.install_dev=/dev/vda coreos.inst.image_file=/run/media/iso/image.raw.xz coreos.inst.insecure quiet fdo.manufacturing_server_url=http://192.168.122.1:8080 fdo.diun_pub_key_insecure=true initrd images/pxeboot/initrd.img }
-
Boot the menu entry by pressing "[Ctrl-x]"
-
Once the IoT device has been installed and performed the manufacturing process it will reboot and perform the FDO Onboarding in the next boot.
Verifying the Onboarding
If the onboarding finished successfully you sould be able to login with the initial user configured in the Service Info API server.
When using libvirt in the same host where the FDO services are running you can use the following command to connect to the VM:
#! /bin/bash export LIBVIRT_DEFAULT_URI=qemu:///system export LIBVIRT_DOMAIN_NAME=fedora-iot-device export LIBVIRT_NETWORK=default MAC=$(virsh domiflist "${LIBVIRT_DOMAIN_NAME}" | grep "${LIBVIRT_NETWORK}" | awk '{print $5}') IP=$(virsh net-dhcp-leases "${LIBVIRT_NETWORK}"| grep "${MAC}" | awk '{print $5}'| cut -f1 -d/) ssh admin@${IP}
Want to help? Learn how to contribute to Fedora Docs ›