282 lines
9.3 KiB
Text
282 lines
9.3 KiB
Text
|
#!/usr/bin/env bash
|
||
|
clear
|
||
|
|
||
|
|
||
|
## FEDORA BASEOS FILES
|
||
|
osrel="/etc/fedora-release"
|
||
|
######################
|
||
|
|
||
|
## COLORS
|
||
|
# Reset
|
||
|
Color_Off='\033[0m' # Text Reset
|
||
|
|
||
|
# Regular Colors
|
||
|
Black='\033[0;30m' # Black
|
||
|
Red='\033[0;31m' # Red
|
||
|
Green='\033[0;32m' # Green
|
||
|
Yellow='\033[0;33m' # Yellow
|
||
|
Blue='\033[0;34m' # Blue
|
||
|
Purple='\033[0;35m' # Purple
|
||
|
Cyan='\033[0;36m' # Cyan
|
||
|
White='\033[0;37m' # White
|
||
|
|
||
|
# Bold
|
||
|
BBlack='\033[1;30m' # Black
|
||
|
BRed='\033[1;31m' # Red
|
||
|
BGreen='\033[1;32m' # Green
|
||
|
BYellow='\033[1;33m' # Yellow
|
||
|
BBlue='\033[1;34m' # Blue
|
||
|
BPurple='\033[1;35m' # Purple
|
||
|
BCyan='\033[1;36m' # Cyan
|
||
|
BWhite='\033[1;37m' # White
|
||
|
|
||
|
# Underline
|
||
|
UBlack='\033[4;30m' # Black
|
||
|
URed='\033[4;31m' # Red
|
||
|
UGreen='\033[4;32m' # Green
|
||
|
UYellow='\033[4;33m' # Yellow
|
||
|
UBlue='\033[4;34m' # Blue
|
||
|
UPurple='\033[4;35m' # Purple
|
||
|
UCyan='\033[4;36m' # Cyan
|
||
|
UWhite='\033[4;37m' # White
|
||
|
|
||
|
# Background
|
||
|
On_Black='\033[40m' # Black
|
||
|
On_Red='\033[41m' # Red
|
||
|
On_Green='\033[42m' # Green
|
||
|
On_Yellow='\033[43m' # Yellow
|
||
|
On_Blue='\033[44m' # Blue
|
||
|
On_Purple='\033[45m' # Purple
|
||
|
On_Cyan='\033[46m' # Cyan
|
||
|
On_White='\033[47m' # White
|
||
|
|
||
|
# High Intensity
|
||
|
IBlack='\033[0;90m' # Black
|
||
|
IRed='\033[0;91m' # Red
|
||
|
IGreen='\033[0;92m' # Green
|
||
|
IYellow='\033[0;93m' # Yellow
|
||
|
IBlue='\033[0;94m' # Blue
|
||
|
IPurple='\033[0;95m' # Purple
|
||
|
ICyan='\033[0;96m' # Cyan
|
||
|
IWhite='\033[0;97m' # White
|
||
|
|
||
|
# Bold High Intensity
|
||
|
BIBlack='\033[1;90m' # Black
|
||
|
BIRed='\033[1;91m' # Red
|
||
|
BIGreen='\033[1;92m' # Green
|
||
|
BIYellow='\033[1;93m' # Yellow
|
||
|
BIBlue='\033[1;94m' # Blue
|
||
|
BIPurple='\033[1;95m' # Purple
|
||
|
BICyan='\033[1;96m' # Cyan
|
||
|
BIWhite='\033[1;97m' # White
|
||
|
|
||
|
# High Intensity backgrounds
|
||
|
On_IBlack='\033[0;100m' # Black
|
||
|
On_IRed='\033[0;101m' # Red
|
||
|
On_IGreen='\033[0;102m' # Green
|
||
|
On_IYellow='\033[0;103m' # Yellow
|
||
|
On_IBlue='\033[0;104m' # Blue
|
||
|
On_IPurple='\033[0;105m' # Purple
|
||
|
On_ICyan='\033[0;106m' # Cyan
|
||
|
On_IWhite='\033[0;107m' # White
|
||
|
######################
|
||
|
|
||
|
## HEADER
|
||
|
echo -e "${On_Green}====================================================================
|
||
|
==== Tyleo Next Generation Script - Fedora Interactive Deployer ====
|
||
|
====================================================================${Color_Off}"
|
||
|
|
||
|
## HOST DETAILS
|
||
|
# SHOW
|
||
|
echo -e "${On_Green}= Host Informations${Color_Off}"
|
||
|
echo -e " Hostname : ${BGreen}$HOSTNAME${Color_Off}"
|
||
|
echo -e " Primary IP : ${BGreen}$(hostname -I | cut -d' ' -f1)$Color_Off"
|
||
|
echo -e " Time : ${BGreen}$(date)${Color_Off}"
|
||
|
echo -e " User : ${BGreen}$(whoami)${Color_Off}"
|
||
|
echo -e " UID/GID : ${BGreen}$UID${Color_Off}"
|
||
|
echo -e " HomeDir : ${BGreen}$HOME${Color_Off}"
|
||
|
echo -e " Language : ${BGreen}$LANG${Color_Off}"
|
||
|
echo -e "${On_Green}= ${Color_Off}"
|
||
|
######################
|
||
|
|
||
|
## BASE (UI)
|
||
|
prefix="Run=======/>"
|
||
|
errors="Error=====/>"
|
||
|
succes="Success===/>"
|
||
|
compat="Compat====/>"
|
||
|
askfor="Question==/>"
|
||
|
######################
|
||
|
|
||
|
## ROOT MODE CHECK (SUDO MODE OR SU MODE)
|
||
|
if [ "$UID" -ne 0 ]
|
||
|
then
|
||
|
echo -e "${Red}$errors Root mode not detected (current UID : ${BRed}$UID${Red}). You must run this script as root or via sudo command. (we recommend running as root mode after sudo su -)${Color_Off}"
|
||
|
exit
|
||
|
fi
|
||
|
######################
|
||
|
|
||
|
if [[ -f "$osrel" ]]; then
|
||
|
echo -e "${BCyan}$compat${Color_Off} Fedora was detected."
|
||
|
echo -e "${BYellow}$prefix${Color_Off} Continue Execution."
|
||
|
else
|
||
|
echo -e "${BCyan}$compat${Color_Off} Another OS is active on this machine. Incompatibility identified."
|
||
|
echo -e "${BYellow}$prefix${Color_Off} Exiting."
|
||
|
exit
|
||
|
fi
|
||
|
|
||
|
## RANDOM PIN
|
||
|
pincode=$(shuf -i 1-100000 -n 1)
|
||
|
#######################
|
||
|
|
||
|
## CONFIRMATION
|
||
|
echo -n -e "${BBlue}$askfor${Color_Off} Type this code to execute ($pincode) : "
|
||
|
read -r pinentered
|
||
|
if [[ "$pinentered" -ne "$pincode" ]]
|
||
|
then
|
||
|
echo -e "${BRed}$errors Pincode $pinentered received, there is an error here. Good Bye.${Color_Off}"
|
||
|
echo -e "${BRed}$errors Exiting...${Color_Off}"
|
||
|
exit
|
||
|
fi
|
||
|
echo -e "${BGreen}$succes Pincode $pinentered received, Accepted.${Color_Off}"
|
||
|
#######################
|
||
|
sleep 2
|
||
|
clear
|
||
|
echo -e "${On_Blue}== Interactive Deployment Started - Welcome $(whoami) ==${Color_Off}"
|
||
|
|
||
|
## Updating System
|
||
|
echo -e "${BYellow}$prefix${Color_Off} DNF:Updating Packages..."
|
||
|
echo -e "$BPurple"
|
||
|
dnf up -y --refresh
|
||
|
echo -e "$Color_Off"
|
||
|
echo -e "$Color_Off"
|
||
|
|
||
|
## BASIC PACKAGES BY TYLEO (With auto mode)
|
||
|
echo -n -e "${BBlue}$askfor${Color_Off} Install Basic Package (Recommended, Include BTOP, HTOP and Glances) ? (Y/n):"
|
||
|
read -r accept
|
||
|
if [[ $accept = Y ]] || [[ $accept = y ]] ; then
|
||
|
clear
|
||
|
echo -e "${On_Blue}== Basic Package by Tyleo Dv. Delaware - Installation Processing ==${Color_Off}"
|
||
|
echo -e "${On_Blue}== htop btop duf fish zsh git nano glances ==${Color_Off}"
|
||
|
echo -e "${BYellow}$prefix${Color_Off} Installing Base Packages (recommended by Tyleo)..."
|
||
|
echo -e "${BYellow}$prefix${Color_Off} DNF:Installing Packages..."
|
||
|
echo -e "$BPurple"
|
||
|
dnf in -y htop btop duf fish zsh git nano glances
|
||
|
echo -e "$Color_Off"
|
||
|
echo -e "${BYellow}$prefix${Color_Off} SYS:Enabling Glances..."
|
||
|
systemctl enable glances
|
||
|
systemctl start glances
|
||
|
fi
|
||
|
accept="n"
|
||
|
|
||
|
## DOCKER
|
||
|
echo -n -e "${BBlue}$askfor${Color_Off} Install Docker ? (Y/n):"
|
||
|
read -r accept
|
||
|
if [[ $accept = Y ]] || [[ $accept = y ]] ; then
|
||
|
clear
|
||
|
echo -e "${On_Blue}== Docker Community Edition - Installation Processing ==${Color_Off}"
|
||
|
echo -e "${BYellow}$prefix${Color_Off} DNF-CFG:Adding Docker CE Repo (Auto Rel)..."
|
||
|
dnf config-manager --add-repo=https://download.docker.com/linux/fedora/docker-ce.repo -y
|
||
|
echo -e "$Color_Off"
|
||
|
echo -e "${BYellow}$prefix${Color_Off} DNF:Updating Index..."
|
||
|
echo -e "$BPurple"
|
||
|
dnf up -y --refresh
|
||
|
echo -e "$Color_Off"
|
||
|
echo -e "$Color_Off"
|
||
|
echo -e "${BYellow}$prefix${Color_Off} DNF:Installing docker-ce..."
|
||
|
echo -e "$BPurple"
|
||
|
dnf in docker-ce -y
|
||
|
echo -e "$Color_Off"
|
||
|
wget https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -O /usr/local/bin/ctop
|
||
|
chmod +x /usr/local/bin/ctop
|
||
|
wget http://s.tyleodev.fr/host-binary/lazydocker -O /usr/local/bin/lzd
|
||
|
chmod +x /usr/local/bin/lzd
|
||
|
echo -e "${BYellow}$prefix${Color_Off} SYS:Enabling Docker and Docker Socket..."
|
||
|
systemctl enable docker.socket
|
||
|
systemctl enable docker
|
||
|
systemctl start docker.socket
|
||
|
systemctl start docker
|
||
|
fi
|
||
|
accept="n"
|
||
|
|
||
|
## XRDP (RDS Mode, not recommended for Docker enabled host)
|
||
|
echo -n -e "${BBlue}$askfor${Color_Off} Install XRDP Server ? (Y/n):"
|
||
|
read -r accept
|
||
|
if [[ $accept = Y ]] || [[ $accept = y ]] ; then
|
||
|
clear
|
||
|
echo -e "${On_Blue}== X-Server Remote Desktop Services - Installation Processing ==${Color_Off}"
|
||
|
dnf up -y
|
||
|
echo -e "$Color_Off"
|
||
|
echo -e "$BPurple"
|
||
|
dnf in xrdp -y
|
||
|
echo -e "$Color_Off"
|
||
|
systemctl enable xrdp
|
||
|
systemctl enable xrdp-sesman
|
||
|
systemctl start xrdp
|
||
|
systemctl start xrdp-sesman
|
||
|
fi
|
||
|
accept="n"
|
||
|
|
||
|
## GOOGLE CHROME // FOR RDS OR DESKTOP ONLY
|
||
|
chrome_rpm="https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm"
|
||
|
echo -n -e "${BBlue}$askfor${Color_Off} Install Google Chrome Browser ? (RDS or Desktop only !!)(Y/n):"
|
||
|
read -r accept
|
||
|
if [[ $accept = Y ]] || [[ $accept = y ]] ; then
|
||
|
clear
|
||
|
echo -e "== ${BBlue}G${BRed}o${BYellow}o${BBlue}g${BGreen}l${BRed}e${Color_Off} Chrome - Installation Processing =="
|
||
|
dnf up -y
|
||
|
echo -e "$Color_Off"
|
||
|
echo -e "$BPurple"
|
||
|
dnf in -y $chrome_rpm
|
||
|
echo -e "$Color_Off"
|
||
|
fi
|
||
|
|
||
|
accept="n"
|
||
|
|
||
|
echo -n -e "${BBlue}$askfor${Color_Off} Change Hostnames ? (Y/n):"
|
||
|
read -r accept
|
||
|
if [[ $accept = Y ]] || [[ $accept = y ]] ; then
|
||
|
clear
|
||
|
echo -n -e "${BBlue}$askfor${Color_Off} New Pretty Hostname (liberty) : "
|
||
|
read -r pHost
|
||
|
echo -n -e "${BBlue}$askfor${Color_Off} New Static Hostname (no-space,no-maj) : "
|
||
|
read -r sHost
|
||
|
echo -e "${Purple} Setting Hostname (Pretty)${BGreen} [OK]${Color_Off}"
|
||
|
hostnamectl set-hostname "$pHost" --pretty
|
||
|
echo -e "${Purple} Setting Hostname (Static)${BGreen} [OK]${Color_Off}"
|
||
|
hostnamectl set-hostname "$sHost" --static
|
||
|
fi
|
||
|
accept="n"
|
||
|
|
||
|
echo -n -e "${BBlue}$askfor${Color_Off} Change Timezone ? (Y/n):"
|
||
|
read -r accept
|
||
|
if [[ $accept = Y ]] || [[ $accept = y ]] ; then
|
||
|
clear
|
||
|
echo -n -e "${BBlue}$askfor${Color_Off} Enter the Timezone (Zone/City) : "
|
||
|
read -r tzone
|
||
|
timedatectl set-timezone $tzone
|
||
|
echo -e "${Purple} Setting Timezone to $tzone${BGreen} [OK]${Color_Off}"
|
||
|
fi
|
||
|
accept="n"
|
||
|
|
||
|
# TERMINATED
|
||
|
echo -e "${BGreen}$succes${Color_Off} Finished Deployement. Reboot is ${BGreen}recommended${Color_Off}."
|
||
|
echo -n -e "${BBlue}$askfor${Color_Off} Reboot Now ? (Y/n):"
|
||
|
read -r accept
|
||
|
if [[ $accept = Y ]] || [[ $accept = y ]] ; then
|
||
|
clear
|
||
|
echo -e "${BPurple}${BYellow}$prefix${Color_Off} Reboot in 5 seconds...${Color_Off}"
|
||
|
sleep 1
|
||
|
echo -e "${BPurple}${BYellow}$prefix${Color_Off} Reboot in 4 seconds...${Color_Off}"
|
||
|
sleep 1
|
||
|
echo -e "${BPurple}${BYellow}$prefix${Color_Off} Reboot in 3 seconds...${Color_Off}"
|
||
|
sleep 1
|
||
|
echo -e "${BPurple}${BYellow}$prefix${Color_Off} Reboot in 2 seconds...${Color_Off}"
|
||
|
sleep 1
|
||
|
echo -e "${BPurple}${BYellow}$prefix${Color_Off} Reboot in 1 second ...${Color_Off}"
|
||
|
sleep 1
|
||
|
echo -e "${BPurple}${BYellow}$prefix${Color_Off} Reboot in 0 second ...${Color_Off}"
|
||
|
sleep 1
|
||
|
echo -e
|
||
|
sudo reboot
|
||
|
fi
|
||
|
accept="n"
|