108 lines
3.7 KiB
Bash
108 lines
3.7 KiB
Bash
#!/bin/bash
|
|
echo "Setting up template environment"
|
|
|
|
## Script Location
|
|
SCRIPTDIR=$(dirname $0)
|
|
|
|
echo "Checking Dependencies"
|
|
## Start File Loop
|
|
## For .dependency files In The dependencies Directory
|
|
DEPENDENCIESALL="$SCRIPTDIR/dependencies/*.dep"
|
|
for f in $DEPENDENCIESALL
|
|
do
|
|
## Name Of Package
|
|
DEPENDENCYNAME=$(echo "`basename $f | cut -f 1 -d '.'`")
|
|
## Actual Package
|
|
DEPENDENCYPACKAGE=`cat $f`
|
|
echo "Checking For $DEPENDENCYNAME with package name $DEPENDENCYPACKAGE"
|
|
|
|
if which $DEPENDENCYNAME >/dev/null;
|
|
then
|
|
echo "$DEPENDENCYNAME Is Already Installed."
|
|
else
|
|
echo "Installing $DEPENDENCYNAME"
|
|
apt-get install -y $DEPENDENCYPACKAGE
|
|
fi
|
|
|
|
if which $DEPENDENCYNAME >/dev/null;
|
|
then
|
|
:
|
|
else
|
|
echo "Error Installing $DEPENDENCYNAME"
|
|
fi
|
|
## End Of loop
|
|
done
|
|
|
|
echo "checking for topgrade directory"
|
|
topgrade_install_directory="/opt/topgrade"
|
|
if [ ! -d "$topgrade_install_directory" ]; then
|
|
echo "creating topgrade installation directory"
|
|
mkdir $topgrade_install_directory
|
|
fi
|
|
|
|
echo "checking for topgrade binary"
|
|
topgrade_binary="/opt/topgrade/topgrade"
|
|
topgrade_git_user="r-darwish"
|
|
topgrade_git_repo="topgrade"
|
|
if [ ! -f "$topgrade_binary" ]; then
|
|
echo "topgrade binary missing, installing now"
|
|
curl -s -L "https://github.com/$topgrade_git_user/$topgrade_git_repo/releases/latest" | egrep -o '/$topgrade_git_user/$topgrade_git_repo/releases/download/[0-9]*/[0-9]*-x86_64-unknown-linux-gnu.tar.gz' | wget --base=http://github.com/ -i - -O "$topgrade_binary.tar.gz"
|
|
fi
|
|
|
|
echo "checking for neofetch motd"
|
|
neofetch_motd="/etc/update-motd.d/01-neofetch"
|
|
if [ ! -f "$neofetch_motd" ]; then
|
|
echo "Installing Neofetch MOTD"
|
|
echo "#!/bin/bash" | tee --append $neofetch_motd &>/dev/null
|
|
echo "/usr/bin/neofetch" | tee --append $neofetch_motd &>/dev/null
|
|
fi
|
|
|
|
echo "checking for custom bash aliases"
|
|
custom_bash_aliases_path="/etc/bash_aliases"
|
|
custom_bash_aliases_git="https://git.deathbybandaid.net/deathbybandaid/bash_aliases"
|
|
if [ ! -d "$custom_bash_aliases_path" ]; then
|
|
echo "Installing Bash Aliases"
|
|
git clone --quiet $custom_bash_aliases_git $custom_bash_aliases_path
|
|
fi
|
|
source $HOME/.bashrc
|
|
|
|
echo "checking for topgrade confs"
|
|
custom_topgrade_confs_path="/etc/topgrade"
|
|
custom_topgrade_confs_git="https://git.deathbybandaid.net/deathbybandaid/topgrade"
|
|
if [ ! -d "$custom_topgrade_confs_path" ]; then
|
|
echo "Installing topgrade configs"
|
|
git clone --quiet $custom_topgrade_confs_git $custom_topgrade_confs_path
|
|
fi
|
|
|
|
## Update
|
|
echo "Running topgrade"
|
|
/opt/topgrade/topgrade
|
|
|
|
## FreeIPA Realm Join
|
|
if (whiptail --title "FreeIPA Relam Join" --yes-button "yes" --no-button "no" --yesno "Do You want to join a FreeIPA Realm?" 10 80)
|
|
then
|
|
echo "Checking if system already contains Membership to FreeIPA Realm"
|
|
realm_join=0
|
|
if [[ ! -f /var/lib/ipa-client/sysrestore/sysrestore.state ]]
|
|
then
|
|
echo "$HOSTNAME appears to not be joined to FreeIPA Server Realm"
|
|
realm_join=1
|
|
else
|
|
echo "$HOSTNAME appears to already be joined to FreeIPA Server Realm"
|
|
fi
|
|
|
|
if [[ $HOSTNAME == *template* ]]; then
|
|
echo "Hostname $HOSTNAME contains the word 'template', skipping realm joining"
|
|
realm_join=0
|
|
fi
|
|
|
|
if [ "$realm_join" == 1 ]; then
|
|
echo "Setting up ipa-client to join FreeIPA Server Realm"
|
|
freeipa_admin=$(whiptail --passwordbox "Please enter the user authorized to join FreeIPA realm: $freeipa_admin" 8 78 --title "FreeIPA Admin User Prompt" 3>&1 1>&2 2>&3)
|
|
freeipa_password=$(whiptail --passwordbox "Please enter the password for the FreeIPA admin user: $freeipa_admin" 8 78 --title "FreeIPA Password Prompt" 3>&1 1>&2 2>&3)
|
|
ipa-client-install --mkhomedir --no-ntp --principal="$freeipa_admin" --password="$freeipa_password" --enable-dns-updates --unattended
|
|
fi
|
|
else
|
|
echo "Skipping realm joining"
|
|
fi
|