Add wild-dnsmasq-install script for DNSMasq setup and installation

This commit is contained in:
2025-06-27 17:00:18 -07:00
parent 7e65ea0754
commit 4131a2f39f

View File

@@ -1,16 +1,33 @@
#!/bin/bash #!/bin/bash
# Parse command line arguments
INSTALL_MODE=false
while [[ $# -gt 0 ]]; do
case $1 in
--install)
INSTALL_MODE=true
shift
;;
*)
echo "Unknown option: $1"
echo "Usage: $0 [--install]"
echo " --install Copy bundle to DNSMasq server and run installation"
exit 1
;;
esac
done
# Check if WC_HOME is set # Check if WC_HOME is set
if [ -z "${WC_HOME:-}" ]; then if [ -z "${WC_HOME:-}" ]; then
echo "Error: WC_HOME environment variable not set. Run \`source ./env.sh\`." echo "Error: WC_HOME environment variable not set. Run \`source ./env.sh\`."
exit 1 exit 1
fi fi
WILDCLOUD_ROOT=$(wild-config wildcloud.root) || exit 1 WC_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
# --- # ---
SOURCE_DIR="${WILDCLOUD_ROOT}/setup/dnsmasq" SOURCE_DIR="${WC_ROOT}/setup/dnsmasq"
DNSMASQ_SETUP_DIR="${WC_HOME}/setup/dnsmasq" DNSMASQ_SETUP_DIR="${WC_HOME}/setup/dnsmasq"
BUNDLE_DIR="${DNSMASQ_SETUP_DIR}/setup-bundle" BUNDLE_DIR="${DNSMASQ_SETUP_DIR}/setup-bundle"
mkdir -p "${BUNDLE_DIR}" mkdir -p "${BUNDLE_DIR}"
@@ -110,8 +127,9 @@ cp "${DNSMASQ_SETUP_DIR}/nginx.conf" "${BUNDLE_DIR}/nginx.conf"
cp "${DNSMASQ_SETUP_DIR}/dnsmasq.conf" "${BUNDLE_DIR}/dnsmasq.conf" cp "${DNSMASQ_SETUP_DIR}/dnsmasq.conf" "${BUNDLE_DIR}/dnsmasq.conf"
cp "${DNSMASQ_SETUP_DIR}/setup.sh" "${BUNDLE_DIR}/setup.sh" cp "${DNSMASQ_SETUP_DIR}/setup.sh" "${BUNDLE_DIR}/setup.sh"
# Copy setup bundle to DNSMasq server. # Copy setup bundle to DNSMasq server and install (only if --install flag is provided)
# This is the server that will run DNSMasq and serve PXE boot files. if [ "$INSTALL_MODE" = true ]; then
echo "Installing DNSMasq setup on remote server..."
SERVER_HOST=$(wild-config cloud.dns.ip) || exit 1 SERVER_HOST=$(wild-config cloud.dns.ip) || exit 1
SETUP_DIR="${WC_HOME}/setup/dnsmasq/setup-bundle" SETUP_DIR="${WC_HOME}/setup/dnsmasq/setup-bundle"
@@ -126,3 +144,9 @@ ssh root@${SERVER_HOST} "cd ${DESTINATION_DIR} && ./setup.sh" || {
echo "Error: Failed to run setup script on ${SERVER_HOST}" echo "Error: Failed to run setup script on ${SERVER_HOST}"
exit 1 exit 1
} }
echo "DNSMasq installation completed successfully on ${SERVER_HOST}"
else
echo "DNSMasq setup bundle created successfully at ${BUNDLE_DIR}"
echo "Run with --install flag to copy bundle to server and install"
fi