#!/bin/bash #deploy_drbl.sh ver 0.3 drblrepo="http://free.nchc.org.tw/drbl-core" ipaddress='192.168.112.200' mask='255.255.255.0' public_key='54C0 821A 4871 5DAF D61B FCAF 6678 57D0 4559 9AFD' # Checking network connection echo -n "Checking network connection: " ping -c 1 -W 3 google.com &>/dev/null if [ "$?" == 0 ]; then echo "ok" else echo "fail" echo "Check your connection and run script again" && exit fi # Check if curl exists type -P curl &>/dev/null if [ "$?" != 0 ]; then up=0 echo -e "\n'Curl' is needed but not found, starting installation" apt update && apt install -y curl fi # Check if we can connect to DRBL repo echo -n "Checking connection to DRBL repository: " curl "$drblrepo" &>/dev/null if [ "$?" == 0 ]; then echo "ok" else echo "fail" echo "Can't connect to DRBL repository, exiting" && exit fi # Download the GPG Key for DRBL repo echo -n "Checking if DRBL project public key is installed: " apt-key list | grep -q "$public_key" if [ "$?" == 0 ]; then echo "ok" echo "Found DRBL Project public key '$public_key'" else echo "fail" echo 'DRBL Project public key not found, installing key' curl -s -A 'Mozzila/5.0' https://drbl.org/GPG-KEY-DRBL | apt-key add - apt-key list | grep -q "$public_key" [ "$?" != 0 ] && echo "DRBL Project public key '$public_key' was not properly installed, exiting" && exit fi # Add DRBL repository echo -n "Checking if DRBL repository is in '/etc/apt/sources.list': " grep -q 'Clonezilla repository' /etc/apt/sources.list if [ "$?" == 0 ]; then echo "ok" else echo "fail" echo "Adding DRBL repository to '/etc/apt/sources.list'" echo -e "\n# Clonezilla repository" >> /etc/apt/sources.list echo "deb $drblrepo drbl testing" >> /etc/apt/sources.list fi # Update OS echo 'Starting OS update' apt update # Install DRBL server echo -n "Checking if DRBL server is installed: " type -P drblsrv &>/dev/null if [ "$?" == 0 ]; then echo "ok" else echo "fail" echo "Starting installation of DRBL server" apt install -y drbl type -P drblsrv &>/dev/null [ "$?" != 0 ] && echo "DRBL isn't properly installed, exiting" && exit fi # Setup DRBL server echo "Starting DRBL server setup" /usr/sbin/drblsrv -i # Configure Clonezilla echo -n "Checking if 'drblpush' script is available: " type -P drblpush &>/dev/null if [ "$?" == 0 ]; then echo "ok" echo "Starting 'drblpush'" drblpush -i else echo "fail" echo "'drblpush' isn't found, exiting" && exit fi # Start Clonezilla server echo -n "Checking if 'Clonezilla' script is available: " type -P dcs &>/dev/null if [ "$?" == 0 ]; then echo "ok" echo "Starting 'dcs'" dcs else echo "fail" echo "'dcs' isn't found, exiting" && exit fi exit 0