Merge pull request 'Add change hostname script' (#3) from wip into main

Reviewed-on: #3
This commit is contained in:
2025-04-23 19:47:46 +00:00
3 changed files with 67 additions and 6 deletions

View File

@@ -6,3 +6,4 @@ A collection of scripts intended to simplify setting up and maintianing an Ubunt
[Docker](Scripts/Docker.sh) - Install Docker [Docker](Scripts/Docker.sh) - Install Docker
[Portainer](Scripts/Portainer.sh) - Install Docker and Portainer Server [Portainer](Scripts/Portainer.sh) - Install Docker and Portainer Server
[Update](Scripts/Update.sh) - Update and clean up unused packages [Update](Scripts/Update.sh) - Update and clean up unused packages
[Change Hostname](Scripts/change_hostname.sh) - Change the hostname for the system

View File

@@ -4,10 +4,11 @@ clear
echo "What do you want to do?" echo "What do you want to do?"
echo "1. Install Docker" echo "1. Install Docker"
echo "2. Install Docker + Portainer Server" echo "2. Install Docker + Portainer Server"
echo "3. Update system" echo "3. Update System"
echo "4. Exit" echo "4. Change Hostname"
echo "5. Exit"
echo "" echo ""
echo -n "enter your selection: " echo -n "enter your selection(1-4)(5 to exit): "
while : while :
do do
@@ -22,32 +23,37 @@ case $choice in
sudo install -m 0755 -d /etc/apt/keyrings 1>/dev/null sudo install -m 0755 -d /etc/apt/keyrings 1>/dev/null
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc 1>/dev/null sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc 1>/dev/null
sudo chmod a+r /etc/apt/keyrings/docker.asc 1>/dev/null sudo chmod a+r /etc/apt/keyrings/docker.asc 1>/dev/null
# Add the repository to Apt sources: # Add the repository to Apt sources:
echo \ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update 1>/dev/null sudo apt-get update 1>/dev/null
# Install Docker # Install Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y 1>/dev/null sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y 1>/dev/null
echo "Done";; echo "Done";;
2) echo "Installing Docker..." 2) echo "Installing Docker..."
# Add Docker's official GPG key: # Add Docker's official GPG key:
sudo apt-get update 1>/dev/null sudo apt-get update 1>/dev/null
sudo apt-get install ca-certificates curl -y 1>/dev/null sudo apt-get install ca-certificates curl -y 1>/dev/null
sudo install -m 0755 -d /etc/apt/keyrings 1>/dev/null sudo install -m 0755 -d /etc/apt/keyrings 1>/dev/null
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc 1>/dev/null sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc 1>/dev/null
sudo chmod a+r /etc/apt/keyrings/docker.asc 1>/dev/null sudo chmod a+r /etc/apt/keyrings/docker.asc 1>/dev/null
# Add the repository to Apt sources: # Add the repository to Apt sources:
echo \ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update 1>/dev/null sudo apt-get update 1>/dev/null
# Install Docker # Install Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y 1>/dev/null sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y 1>/dev/null
echo "Done" echo "Done"
#install Portianer server #install Portianer server
echo "Installing Portainer..." echo "Installing Portainer..."
sudo docker volume create portainer_data 1>/dev/null sudo docker volume create portainer_data 1>/dev/null
@@ -64,12 +70,40 @@ case $choice in
sudo apt-get autoremove -y 1>/dev/null sudo apt-get autoremove -y 1>/dev/null
echo "Done" ;; echo "Done" ;;
4) echo "Exiting..." 4) echo ""
#get current hostname and set it as value of old_host
old_host=$(hostname)
#make backups for hostname and hosts files
cp /etc/hostname /etc/hostname.bk
cp /etc/hosts /etc/hosts.bk
#ask user for new host name and set it as value for new_host
printf "%s\n" "Hostname must be between 1-63 characters long"
printf "%s\n" "Valid characters are (lower case a-z), (0-9), and (-)"
printf "%s" "enter new hostname: "
read new_host
#replace old_host with new_host in hostname and hosts files
#set hostname to new_host
sed -i 's/'$old_host'/'$new_host'/' /etc/hostname
sed -i 's/'$old_host'/'$new_host'/' /etc/hosts
hostname $new_host
#confirm change and tell user to restart system
printf "%s\n" "Hostname changed from [$old_host] to [$new_host]"
printf "%s\n" "Reboot your system for the change to take effect" ;;
5) echo "Exiting..."
exit ;; exit ;;
*) echo "Invalid option" ;; *) echo "Invalid option" ;;
esac esac
echo -n "enter your selection: " echo ""
echo ""
echo -n "enter your selection(1-4)(5 to exit): "
done done

View File

@@ -0,0 +1,26 @@
#! /bin/bash
clear
#get current hostname and set it as value of old_host
old_host=$(hostname)
#make backups for hostname and hosts files
cp /etc/hostname /etc/hostname.bk
cp /etc/hosts /etc/hosts.bk
#ask user for new host name and set it as value for new_host
printf "%s\n" "Hostname must be between 1-63 characters long"
printf "%s\n" "Valid characters are (lower case a-z), (0-9), and (-)"
printf "%s" "enter new hostname: "
read new_host
#replace old_host with new_host in hostname and hosts files
#set hostname to new_host
sed -i 's/'$old_host'/'$new_host'/' /etc/hostname
sed -i 's/'$old_host'/'$new_host'/' /etc/hosts
hostname $new_host
#confirm change and tell user to restart system
printf "%s\n" "Hostname changed from [$old_host] to [$new_host]"
printf "%s\n" "Reboot your system for the change to take effect"