diff --git a/seqs/freeradius.cfg.example b/seqs/freeradius.cfg.example new file mode 100644 index 0000000..1e72f0c --- /dev/null +++ b/seqs/freeradius.cfg.example @@ -0,0 +1,9 @@ +#!/bin/bash + +## Freeradius settings +FRAD_DB_NAME="radius" +FRAD_DB_USER="radius" +# Default freeradius database password: radpass + +## Daloradius settings +DRAD_HOME="/var/www/daloradius" diff --git a/seqs/freeradius.sh b/seqs/freeradius.sh new file mode 100755 index 0000000..62041f8 --- /dev/null +++ b/seqs/freeradius.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +toolName=freeradius +toolConfLoc="/etc/freeradius/3.0" + +# Get script working directory +# (when called from a different directory) +WDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >>/dev/null 2>&1 && pwd)" +APTOPT= +CONFIG=0 +SCRIPT_FILE=$(basename -- $0) +SCRIPT_NAME=${SCRIPT_FILE%%.*} +CONFIG_FILE_NAME="${SCRIPT_NAME}.cfg" +CONFIG_FILE_TEMPLATE="$WDIR/${CONFIG_FILE_NAME}.example" + +step_config() { + ## or to use sequencer api with profile config file support: + initSeqConfig "$SCRIPT_NAME" "$CONFIG_FILE_TEMPLATE" + if [ $? -eq 0 ] ; then + CONFIG=1 + echoseq " [I] Freeradius DB: $FRAD_DB_NAME" + echoseq " Daloradius home: $DRAD_HOME" + else + # End if no configuration file exists + [ $DRY -eq 0 ] && return -1 + fi + + ## Apt cmdline option to suppress user interaction + [ $QUIET -ne 0 ] && APTOPT="-y" + + ## Return of non zero value will abort the sequence + return 0 +} + +step_50_info() { echo "Init freeradius and daloradius database"; } +step_50_alias() { ALIAS="initdb"; } +step_50() { + local drDbInit="$DRAD_HOME/contrib/db/mysql-daloradius.sql" + local frDbSchema="$toolConfLoc/mods-config/sql/main/mysql/schema.sql" + local frDbSetup="$toolConfLoc/mods-config/sql/main/mysql/setup.sql" + exe "$WDIR"/mysql.sh createdb -c utf8 -d "$FRAD_DB_NAME" -u "$FRAD_DB_USER" + endReturn -o $? "Creating database failed" + + exep "mysql -uroot \"$FRAD_DB_NAME\" < $frDbSchema" + #exep "mysql -uroot \"$FRAD_DB_NAME\" < $frDbSetup" + exep "mysql -uroot \"$FRAD_DB_NAME\" < $drDbInit" +} + + +step_52_info() { echo "Reset freeradius and daloradius database"; } +step_52_alias() { ALIAS="resetdb"; } +step_52() { + local lAnswer + + if [ $QUIET -eq 0 ]; then + read -p "Do you really want to reset the database $FRAD_DB_NAME y/[n]? " lAnswer + else + lAnswer=y + fi + case "$lAnswer" in + [yY]) + echoseq -n " [I] Reseting DB...";; + *) + echoerr " [I] Abort reset" + return 1;; + esac + + exe mysql -e "DROP DATABASE $FRAD_DB_NAME" + step initdb +} + +VERSION_SEQREV=13 +. /usr/local/bin/sequencer.sh