You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.8 KiB
Bash
57 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
# Script to set the hostname for k3OS by writing directly to the hostname file.
|
|
# This script requires root privileges and prompts the user for the new hostname.
|
|
|
|
HOSTNAME_FILE="/var/lib/rancher/k3os/hostname"
|
|
|
|
# --- Function to check for root/sudo privileges ---
|
|
check_privileges() {
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "Error: This script must be run with root/sudo privileges."
|
|
echo "Please run: sudo $0"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# --- Function to get user input ---
|
|
get_hostname_input() {
|
|
# Loop until a non-empty hostname is provided
|
|
while true; do
|
|
read -r -p "Enter the desired new hostname: " NEW_HOSTNAME
|
|
if [ -n "$NEW_HOSTNAME" ]; then
|
|
break
|
|
else
|
|
echo "Error: Hostname cannot be empty. Please enter a valid name."
|
|
fi
|
|
done
|
|
}
|
|
|
|
# --- Function to write the hostname to the file ---
|
|
write_hostname() {
|
|
local NEW_HOSTNAME="$1"
|
|
|
|
echo "Attempting to write new hostname: **$NEW_HOSTNAME** to **$HOSTNAME_FILE**"
|
|
|
|
# Write the new hostname, ensuring no extra whitespace or newlines
|
|
echo -n "$NEW_HOSTNAME" > "$HOSTNAME_FILE"
|
|
|
|
# Check if the write operation was successful
|
|
if [ $? -eq 0 ]; then
|
|
echo "Success: The new hostname has been written to $HOSTNAME_FILE."
|
|
echo ""
|
|
echo "--- Verification ---"
|
|
echo "File content: $(cat "$HOSTNAME_FILE")"
|
|
echo ""
|
|
echo "Action Required: A **system reboot is necessary** for the new hostname to take effect."
|
|
echo "You can reboot now using the 'reboot' command."
|
|
else
|
|
echo "Error: Failed to write to $HOSTNAME_FILE. Check file permissions or disk status."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# --- Main execution ---
|
|
check_privileges
|
|
get_hostname_input
|
|
write_hostname "$NEW_HOSTNAME" |