package pxe import ( "fmt" "provisioning/internal/config" "provisioning/internal/model" ) func GenerateFirstBootScript(host *model.Host, serverType model.ServerType, cfg *config.Config) string { return fmt.Sprintf(`#!/bin/bash set -euo pipefail PROVISIONING_URL="%s" HOST_ID="%d" NIC="%s" IP=$(ip -4 addr show dev "$NIC" | grep -oP '(?<=inet\s)\d+(\.\d+){3}') HWID=$(dmidecode -s system-uuid) curl -fsSL -X POST "${PROVISIONING_URL}/api/hosts/${HOST_ID}/phone-home" \ -H "Content-Type: application/json" \ -d "{\"ip\": \"${IP}\", \"hardware_id\": \"${HWID}\", \"hostname\": \"$(hostname)\"}" systemctl disable provisioning-firstboot.service rm -f /etc/systemd/system/provisioning-firstboot.service `, cfg.Server.PublicURL, host.ID, serverType.ManagementNIC) }