#!/bin/bash # This file to be run on dnsmasq server (Central) echo "Updating APT repositories." sudo apt-get update echo "Installing dnsmasq and nginx." sudo apt install -y dnsmasq nginx DNSMASQ_SETUP_DIR="." # PXE_FTPD_DIR="${DNSMASQ_SETUP_DIR}/pxe-ftpd" # PXE_WEB_ROOT="${DNSMASQ_SETUP_DIR}/ipxe-web" # Configure nginx. # echo "Configuring nginx." # sudo cp "${DNSMASQ_SETUP_DIR}/nginx.conf" /etc/nginx/sites-available/talos # sudo chown www-data:www-data /etc/nginx/sites-available/talos # sudo chmod -R 755 /etc/nginx/sites-available/talos # Copy assets to nginx web root # echo "Copying Talos PXE boot assets to nginx web root." # TALOS_PXE_WEB_ROOT="/var/www/html/talos" # sudo mkdir -p "${TALOS_PXE_WEB_ROOT}" # sudo rm -rf ${TALOS_PXE_WEB_ROOT}/* # Clean the web root directory # sudo cp -r ${PXE_WEB_ROOT}/* "${TALOS_PXE_WEB_ROOT}" # sudo chown -R www-data:www-data "${TALOS_PXE_WEB_ROOT}" # sudo chmod -R 755 "${TALOS_PXE_WEB_ROOT}" # Start nginx service to serve the iPXE script and images # echo "Starting nginx service." # sudo ln -s /etc/nginx/sites-available/talos /etc/nginx/sites-enabled/talos > /dev/null 2>&1 || true # sudo rm -f /etc/nginx/sites-enabled/default # sudo systemctl reload nginx # Stop and disable systemd-resolved if it is running # if systemctl is-active --quiet systemd-resolved; then # echo "Stopping and disabling systemd-resolved..." # sudo systemctl disable systemd-resolved # sudo systemctl stop systemd-resolved # # sudo rm -f /etc/resolv.conf # echo "systemd-resolved stopped and disabled" # fi # Update PXE's iPXE bootloader files. # echo "Updating iPXE ftpd bootloader files." # sudo mkdir -p /var/ftpd # sudo cp ${PXE_FTPD_DIR}/* /var/ftpd/ # Finally, install and configure DNSMasq. echo "Configuring and starting DNSMasq." sudo cp "${DNSMASQ_SETUP_DIR}/dnsmasq.conf" /etc/dnsmasq.conf sudo systemctl restart dnsmasq echo "DNSMasq installation and configuration completed successfully."