forked from NationTech/harmony
		
	The process will setup DHCP dnsmasq on opnsense to boot the correct ipxe file depending on the architecture Then ipxe will chainload to either a mac-specific ipxe boot file or the fallback inventory boot file Then a kickstart pre script will setup the cluster ssh key to allow ssh connections to the machine and also setup and start harmony_inventory_agent to allow being scraped Note: there is a bug with the inventory agent currently, it cannot find lsmod on centos stream 9, will fix this soon
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
| #!ipxe
 | |
| 
 | |
| # =================================================================
 | |
| #  Harmony Discovery Agent - Default Boot Script (default.ipxe)
 | |
| # =================================================================
 | |
| #
 | |
| # This script boots the CentOS Stream live environment for the
 | |
| # purpose of hardware inventory. It loads the kernel and initramfs
 | |
| # directly and passes a Kickstart URL for full automation.
 | |
| #
 | |
| 
 | |
| # --- Configuration
 | |
| # Set the base URL for where the CentOS kernel/initrd are hosted.
 | |
| set os_base_url http://{{gateway_ip}}:8080/os/centos-stream-9
 | |
| # Set the URL for the Kickstart file.
 | |
| set ks_url http://{{ gateway_ip }}:8080/{{ kickstart_filename }}
 | |
| 
 | |
| # --- Boot Process
 | |
| echo "Harmony: Starting automated node discovery..."
 | |
| echo "Fetching kernel from ${os_base_url}/vmlinuz..."
 | |
| kernel ${os_base_url}/vmlinuz
 | |
| 
 | |
| echo "Fetching initramfs from ${os_base_url}/initrd.img..."
 | |
| initrd ${os_base_url}/initrd.img
 | |
| 
 | |
| echo "Configuring kernel boot arguments..."
 | |
| # Kernel Arguments Explained:
 | |
| # - initrd=initrd.img:      Specifies the initial ramdisk to use.
 | |
| # - inst.stage2:            Points to the OS source. For a live boot, the base URL is sufficient.
 | |
| # - inst.ks:                CRITICAL: Points to our Kickstart file for automation.
 | |
| # - ip=dhcp:                Ensures the live environment configures its network.
 | |
| # - console=...:            Provides boot output on both serial and graphical consoles for debugging.
 | |
| imgargs vmlinuz initrd=initrd.img inst.sshd inst.stage2=${os_base_url} inst.ks=${ks_url} ip=dhcp console=ttyS0,115200 console=tty1
 | |
| 
 | |
| echo "Booting into CentOS Stream 9 live environment..."
 | |
| boot || goto failed
 | |
| 
 | |
| :failed
 | |
| echo "Boot failed. Dropping to iPXE shell."
 | |
| shell
 |