The pre-baked way to do this is the Linux Terminal Server Project: https://ltsp.org/
Of course, it's also possible to network-boot Windows via PXE and iSCSI, although I personally have no experience with this: https://docs.microsoft.com/en-us/windows-server/storage/iscsi/iscsi-boot-overview Good luck! On Sat, Dec 12, 2020 at 12:12 AM Dan Egli <[email protected]> wrote: > Okay, any idea where I should start looking? I don't mind that it's not > a weekend project, but I really don't want to replicate the same system > 50+ times. My original idea was that since each computer would need it's > own working directory to keep track of all work done and to work on it's > own scratch files what I'd do is have a script that creates a symlink to > the correct directory. I.e. /home/worker -> /tmp/worker -> > /home/worker-25. Each worker MUST have it's own directory, and it can > not be volatile. If they info is missing they will go onto the internet > to re-download it before doing anything. That's a lot of wasted time and > bandwidth. > > Like I said, the main goal here is to be DISKLESS. If I make another > machine, I want to get all the hardware plugged in, register it's MAC, > then boot it and let it run. No software installation needed since all > the software is already being used on the network. Just have the > registration process make a new worker folder, copy the base contents > across into the new folder, add the MAC and give it a hostname (i.e. > worker-21) and reserved IP in the DHCP system. And since I've never been > able to figure out how to serve specific IP addresses to specific MAC > addresses with Systemd's networkd, I'll just use ISC DHCPd. > > On 12/11/2020 11:12 PM, James Simister wrote: > > That sounds like a perfect use of puppet/chef/salt, although I do see the > > attraction of running diskless. I had a PXE-boot Gentoo machine running > for > > a while (with openrc), but wasn't satisfied with the speed. Maybe I did > > something wrong or had something misconfigured, but I had a pretty decent > > core i7 machine with 16G ram (fastest in my house) but the KDE desktop > felt > > closer to my cheapo Celeron laptop from 20 years ago (yes, it still > works). > > Once it loaded an app into RAM, it was spunky, but whenever it went to > > "disk" it was excruciatingly slow (yes, it was a wired connection). I > never > > bothered to profile where the bottleneck was and just put a disk in the > > machine for a local boot. > > > > I am not as familiar with systemd, but usually everything is setup by the > > initrd (which is loaded over the network via TFTP with the kernel) before > > loading the rest of the system. The initrd should get the networking > setup > > and prepare for mounting the root fs. Another option is to just pack the > > entire distro into the "initrd" and never pivotroot. I know some SBCs > used > > this tactic to "fastboot" - the initrd would be a cramfs that would > expand > > into RAM and the entire machine ran from RAM. You could further mount NFS > > or NAS from there. > > > > I agree with Daniel - probably not a single weekend project. But it could > > be a lot of fun and you'd learn a ton about the intricacies of booting > the > > kernel. > > > > On Fri, Dec 11, 2020 at 6:47 PM Dan Egli <[email protected]> wrote: > > > >> On 12/11/2020 3:01 PM, Daniel Fussell wrote: > >>> PXE booting is usually done to install a base image to a machine. If > >>> you want to PXE boot and run diskless clients, you may have to shuffle > >>> some things into the initrd and change systemd service dependencies to > >>> start the network before mounting the root filesystem and chrooting to > >> it. > >>> As said before, to have a common filesystem/image with machine-specific > >>> customization (whether made by systemd, admin, or user) , you are going > >>> to have to get clever with overlayfs or some combination of small NFS > or > >>> local volumes mounted into the tree. You will have to be careful that > >>> processes needing files in the customized mount areas are not run > before > >>> the overlay/mounts are ready, else the processes may continue to use > the > >>> open file descriptors from the original volume. > >>> > >> Who said anything about machine specific? I'm looking at the idea of > >> having 25-50 machines, identical hardware, identical software, identical > >> uses. Only difference between them would be 1) hostname, 2) ip and 3) > >> specific SET of data being processed. > >> > >> -- > >> Dan Egli > >> From my Test Server > >> > >> > >> /* > >> PLUG: http://plug.org, #utah on irc.freenode.net > >> Unsubscribe: http://plug.org/mailman/options/plug > >> Don't fear the penguin. > >> */ > > /* > > PLUG: http://plug.org, #utah on irc.freenode.net > > Unsubscribe: http://plug.org/mailman/options/plug > > Don't fear the penguin. > > */ > > -- > Dan Egli > From my Test Server > > > /* > PLUG: http://plug.org, #utah on irc.freenode.net > Unsubscribe: http://plug.org/mailman/options/plug > Don't fear the penguin. > */ > /* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */
