135 lines
4.3 KiB
Bash
135 lines
4.3 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Check for sudo rights
|
||
|
if [ "$EUID" -ne 0 ]; then
|
||
|
echo "Please run as root or using sudo"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Function to display usage
|
||
|
usage() {
|
||
|
echo "Usage: sudo $0 [--install|--configure]"
|
||
|
}
|
||
|
|
||
|
# Function to configure IP for eth0 interface
|
||
|
configure_eth0_ip() {
|
||
|
read -p "Enter IP address: " ip_address
|
||
|
read -p "Enter netmask: " netmask
|
||
|
read -p "Enter gateway: " gateway
|
||
|
read -p "Enter DNS server: " dns
|
||
|
cat <<EOF >> /etc/dhcpcd.conf
|
||
|
interface eth0
|
||
|
static ip_address=$ip_address/$netmask
|
||
|
static routers=$gateway
|
||
|
static domain_name_servers=$dns
|
||
|
EOF
|
||
|
echo "Static IP configuration for eth0 complete."
|
||
|
}
|
||
|
|
||
|
# Function to configure eth0 interface for DHCP
|
||
|
configure_eth0_dhcp() {
|
||
|
sed -i '/^interface eth0/d' /etc/dhcpcd.conf
|
||
|
systemctl enable --now dhcpcd.service
|
||
|
echo "DHCP configuration for eth0 complete."
|
||
|
}
|
||
|
|
||
|
# Function to configure hostname and update instance name
|
||
|
configure_hostname() {
|
||
|
read -p "Enter a number for the new hostname (e.g., 123): " number
|
||
|
if ! [[ "$number" =~ ^[0-9]+$ ]]; then
|
||
|
echo "Error: Please enter a valid number."
|
||
|
exit 1
|
||
|
fi
|
||
|
hostname="SchmarkusNode-$number"
|
||
|
hostnamectl set-hostname "$hostname"
|
||
|
sed -i "s/instance-name = .*/instance-name = $hostname/" /etc/ola/ola-server.conf
|
||
|
# Update long_name and short_name in ola-artnet.conf
|
||
|
sed -i "s/long_name = OLA - ArtNet node/long_name = $hostname/" /etc/ola/ola-artnet.conf
|
||
|
sed -i "s/short_name = OLA - ArtNet node/short_name = $hostname/" /etc/ola/ola-artnet.conf
|
||
|
echo "Hostname configuration complete."
|
||
|
}
|
||
|
|
||
|
# Disable OLA modules
|
||
|
disable_ola_modules() {
|
||
|
local files=(
|
||
|
"/etc/ola/ola-espnet.conf"
|
||
|
"/etc/ola/ola-opendmx.conf"
|
||
|
"/etc/ola/ola-gpio.conf"
|
||
|
"/etc/ola/ola-karate.conf"
|
||
|
"/etc/ola/ola-kinet.conf"
|
||
|
"/etc/ola/ola-milinst.conf"
|
||
|
"/etc/ola/ola-osc.conf"
|
||
|
"/etc/ola/ola-openpixelcontrol.conf"
|
||
|
"/etc/ola/ola-pathport.conf"
|
||
|
"/etc/ola/ola-renard.conf"
|
||
|
"/etc/ola/ola-spi.conf"
|
||
|
"/etc/ola/ola-sandnet.conf"
|
||
|
"/etc/ola/ola-usbserial.conf"
|
||
|
"/etc/ola/ola-shownet.conf"
|
||
|
"/etc/ola/ola-stageprofi.conf"
|
||
|
"/etc/ola/ola-usbdmx.conf"
|
||
|
)
|
||
|
for file in "${files[@]}"; do
|
||
|
sed -i 's/enabled = true/enabled = false/' "$file"
|
||
|
done
|
||
|
}
|
||
|
|
||
|
disable_ola_modules() {
|
||
|
local files=(
|
||
|
"/etc/ola/ola-ftdidmx.conf"
|
||
|
)
|
||
|
for file in "${files[@]}"; do
|
||
|
sed -i 's/enabled = false/enabled = true/' "$file"
|
||
|
done
|
||
|
}
|
||
|
|
||
|
# Check for arguments
|
||
|
if [ "$1" == "--install" ]; then
|
||
|
# Installation section
|
||
|
apt update && apt upgrade -y
|
||
|
apt install -y ola neofetch
|
||
|
echo -e "neofetch --ascii \"*@***/..,,.(%*//(#/*/,(#/*/**., .&///**,\n,,,,*.,,,*((//////(((////*/**//*,,,,,,,.\n.,...**(/*//((##%&%%%%%%%%%(**(((/*,,,..\n,**,/(*/###%%%&&&&&&&&&&&%%%%%//(/***..,\n,*/**#####%%%&&&&&@@&&&&&%%%%%%(((//*...\n*,**((####%%%&&&&&&@&&&&&&&%%%%%##//*#%/\n,,,*/((####%%%&&&&&&&&&&&&&%%%%###/**,..\n,.,,*/((###%%%%%&&&&&&&&&&&&%%##((/*/,,,\n.,,,,**(###%%%%%%%&%%%%%&%&%%%%###/**%%.\n&*..*//((((//*///(##(/*,,,,*/(/###,/(#//\n,,,.,**,.****,*,,*#&#***,,,.**/((##//(%(\n,,*./,**,/((###/*/#&%,(//((((/#%%##(%#%/\n.,**,**/*/(/((((,/#&&%/%%&&&&&#%##*##%%.\n/%/**,*(((%%%(/*///#%%%%(/(##%%##(###/,*\n.,,***,**/(((/**//#%%%####((**/(((.,,,./\n,. .,,,,***//,.,,**/((#(*/#((((,.... \n ,****,. ,,,*/(/**((##(#((((,... .\n. ,****///((/(((####%##(((/. .\n.. .. .,,*/(#/(####%%%%%#(/*##,... \n.. .. ,,,,.,//(###(###(/**(### ..\n\"" >> /etc/profile
|
||
|
adduser olad spi
|
||
|
adduser node olad
|
||
|
configure_hostname
|
||
|
disable_ola_modules
|
||
|
service olad restart
|
||
|
echo "Installation complete. Please reboot for changes to take effect."
|
||
|
elif [ "$1" == "--configure" ]; then
|
||
|
# Configuration section
|
||
|
PS3="Select configuration option: "
|
||
|
select option in "IP configuration" "Hostname"; do
|
||
|
case $option in
|
||
|
"IP configuration")
|
||
|
PS3="Select IP configuration option for eth0: "
|
||
|
select ip_option in "Static IP" "DHCP"; do
|
||
|
case $ip_option in
|
||
|
"Static IP")
|
||
|
configure_eth0_ip
|
||
|
break
|
||
|
;;
|
||
|
"DHCP")
|
||
|
configure_eth0_dhcp
|
||
|
break
|
||
|
;;
|
||
|
*)
|
||
|
echo "Invalid option. Please select again."
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
break
|
||
|
;;
|
||
|
"Hostname")
|
||
|
configure_hostname
|
||
|
break
|
||
|
;;
|
||
|
*)
|
||
|
echo "Invalid option. Please select again."
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
else
|
||
|
usage
|
||
|
exit 1
|
||
|
fi
|