Web-Based Remote Installation for Fedora Linux: Here's What We're Building

Seems like networking is not an issue. It either works or it doesn’t.

Good point will only work for wired connections.

1 Like

Could the installer advertise itself via mDNS?

Maybe in a form of fedora-<ip_with_dashes>.local or fedora-<randomID>.local ?

Reason: It could be difficult to figure out the IP assigned by DHCP to a headless node.

I’ve not use mDNS for much as I run my own DHCPD and can always find the IP/Name being used by a device.

How would you know what the mDNS name used was?
Is it easy to query all the names seen by the mDNS?

Yes, I am able to enumerate mDNS names with:
avahi-browse -a

Alternative idea, which probably could be a bit controversial, is to use an mDNS name hardcoded in the kickstart config, like fedora-installer.local.
This option should be configurable, including possibility of disabling it completely.
For small-scale use, it would be helpful. For fleets of computers, an automation would anyway be required.

In any case, the installer web page shall display the IP address and possibly other identification (MAC address, BIOS machine id/serial number) of the machine being installed. This will be useful even without mDNS.

3 Likes

CircuitPython implements a similar feature on ESP32 hardware, using http://circuitpython.local as a simple way to find your device. When multiple devices are on the same network, one responds with a welcome page that includes a section titled “Here are other CircuitPython devices on your network.”

1 Like

Could a web console that displays the text-mode installation serve as a lightweight headless option?

1 Like

@orichalcum Both your ideas sound really cool to me.

at this point the core functionality is finally merged on webui and anaconda repos.
it shall be part of F45 atomic isos as a tech preview.

If you are eager to test it, you can try it now with the following steps:

make create-updates.img
  • Then boot a Rawhide installer with inst.updates pointing to the generated updates.img, for example with virt-install:
virt-install \
  --location <rawhide-boot-iso> \
  --extra-arg inst.updates=<path-or-url-to-updates.img> \
  --extra-arg  inst.webui.remote \
  --extra-arg inst.webui.remote.pin=<your pin here> \
  ...

We are also planning for a test day with this feature. Stay tuned! :smiley:

“IP address” is a critical feature to make this useful for remote installation. Getting the installer assigned an ip reachable from outside is beyond a non-technical “client” (paid or unpaid) or family member. If the “client” has a secure message channel (e.g. encrypted Matrix room), then IPv6 is ideal. They can retype or send a photo of the IPv6 assigned. Doesn’t even have to a secure channel with a good PIN via secure channel. Possible approaches:
0. The user has a functional ISP that actually provides a stable globally addressable IPv6. This is highly unlikely, so I’ll skip it.

  1. a tunnel broker to assign a normal IPv6. How could the user select one? Or is it feasible for Fedora to provide a tunnelbroker for install IPs?
  2. Include a “mesh” protocol in the installer. I have failed miserably at keeping the cjdns package viable due to Rust issues. But there is yggdrasil: 2405212 – Review Request: yggdrasil-network - IPv6 crypto-mesh network over tcp The installer could be pre-configured to use some public nodes, including Fedora ones.

A previous attempt to address this was here: