diff --git a/installer_auto.sh b/installer_auto.sh index 5f5c9d9..961682c 100644 --- a/installer_auto.sh +++ b/installer_auto.sh @@ -33,92 +33,93 @@ long_delay_seconds=$(($long_delay * 60)) short_delay_seconds=$(($short_delay * 60)) reconfigure_full () { -# make sure dir works -if [ -z $1 ] || [ ! -d "$1" ]; then - echo "usage bash reconfig_full.sh /path/to/config/dir" - exit -fi + # make sure dir works + if [ -z $1 ] || [ ! -d "$1" ]; then + echo "usage bash reconfig_full.sh /path/to/config/dir" + exit + fi -# paths -## place in system -gpsd="/etc/default/gpsd" -chrony="/etc/chrony/conf.d/precision_timekeeping.conf" -grafana="/etc/grafana/grafana.ini" -influxdb="/etc/influxdb/influxdb.conf" -telegraf="/etc/telegraf/telegraf.conf" -udev_rule="/etc/udev/rules.d/50-tty.rules" -bootfirmwareconfig="/boot/firmware/config.txt" -sudoers="/etc/sudoers" -# hwclockset="/lib/udev/hwclock-set" + # paths + ## place in system + gpsd="/etc/default/gpsd" + chrony="/etc/chrony/conf.d/precision_timekeeping.conf" + grafana="/etc/grafana/grafana.ini" + influxdb="/etc/influxdb/influxdb.conf" + telegraf="/etc/telegraf/telegraf.conf" + udev_rule="/etc/udev/rules.d/50-tty.rules" + bootfirmwareconfig="/boot/firmware/config.txt" + sudoers="/etc/sudoers" + devnull="/dev/null" + # hwclockset="/lib/udev/hwclock-set" -# new conf file paths -gpsd_new=""$1/gpsd"" -chrony_new="$1/chrony.conf" -grafana_new="$1/grafana.ini" -influxdb_new="$1/influxdb.conf" -telegraf_new="$1/telegraf.conf" -udev_new="$1/50-tty.rules" -bootfirmwareconfig_new="$1/boot-firmware-config.txt" -crontab_new="$1/root-crontab" -sudoers_new="$1/sudoers" -# hwclockset_new="$1/hwclock-set" + # new conf file paths + gpsd_new=""$1/gpsd"" + chrony_new="$1/chrony.conf" + grafana_new="$1/grafana.ini" + influxdb_new="$1/influxdb.conf" + telegraf_new="$1/telegraf.conf" + udev_new="$1/50-tty.rules" + bootfirmwareconfig_new="$1/boot-firmware-config.txt" + crontab_new="$1/root-crontab" + sudoers_new="$1/sudoers" + # hwclockset_new="$1/hwclock-set" -# stop da services -bash $git_dir/services.sh stop + # stop da services + bash $git_dir/services.sh stop -# backup conf -bash $git_dir/dump_configs.sh + # backup conf + bash $git_dir/dump_configs.sh -# replace dem by truncation -echo "Placing the new config files by truncation..." -echo -e "\tConfiguring gpsd" -sudo bash -c "cat $gpsd_new > $gpsd" -echo -e "\tConfiguring chrony" -sudo bash -c "cat $chrony_new > $chrony" -echo -e "\tConfiguring grafana" -sudo bash -c "cat $grafana_new > $grafana" -echo -e "\tConfiguring influxdb" -sudo bash -c "cat $influxdb_new > $influxdb" -echo -e "\tConfiguring telegraf" -sudo bash -c "cat $telegraf_new > $telegraf" -echo -e "\tConfiguring udev" -sudo bash -c "cat $udev_new > $udev_rule" + # replace dem by truncation + echo "Placing the new config files by truncation..." + echo -e "\tConfiguring gpsd" + sudo bash -c "cat $gpsd_new > $gpsd" + echo -e "\tConfiguring chrony" + sudo bash -c "cat $chrony_new > $chrony" + echo -e "\tConfiguring grafana" + sudo bash -c "cat $grafana_new > $grafana" + echo -e "\tConfiguring influxdb" + sudo bash -c "cat $influxdb_new > $influxdb" + echo -e "\tConfiguring telegraf" + sudo bash -c "cat $telegraf_new > $telegraf" + echo -e "\tConfiguring udev" + sudo bash -c "cat $udev_new > $udev_rule" -# setup and install root crontabs -echo -e "\nInstalling root cronjobs\n" -(sudo crontab -l 2>/dev/null && sudo cat $crontab_new) | sudo crontab - + # setup and install root crontabs + echo -e "\nInstalling root cronjobs\n" + (sudo crontab -l 2>$devnull && sudo cat $crontab_new) | sudo crontab - -# set up passwordless sudo -## backup first -sudo cp $sudoers "$sudoers.bak" -## replace sudoers with mine -sudo bash -c "cat $sudoers_new > $sudoers" -## test it -sudo visudo -c + # set up passwordless sudo + ## backup first + sudo cp $sudoers "$sudoers.bak" + ## replace sudoers with mine + sudo bash -c "cat $sudoers_new > $sudoers" + ## test it + sudo visudo -c -# config hwclockset -# echo -e "\tConfiguring hwclockset" -# sudo bash -c "cat $hwclockset_new > $hwclockset" + # config hwclockset + # echo -e "\tConfiguring hwclockset" + # sudo bash -c "cat $hwclockset_new > $hwclockset" -# check if /boot/firmware/config.txt is configured yet -sudo grep -q -e "GPS PPS signals" $bootfirmwareconfig -grepconfig=$? + # check if /boot/firmware/config.txt is configured yet + sudo grep -q -e "GPS PPS signals" $bootfirmwareconfig + grepconfig=$? -# configure the overlay -if [ $grepconfig -eq 0 ]; then # if config exists, skip - echo "$bootfirmwareconfig already updated, skipping..." -else - # APPEND to /boot/firmware/config.txt - echo "Appending configs to $bootfirmwareconfig" - sudo bash -c "cat $bootfirmwareconfig_new >> $bootfirmwareconfig" - echo $? -fi + # configure the overlay + if [ $grepconfig -eq 0 ]; then # if config exists, skip + echo "$bootfirmwareconfig already updated, skipping..." + else + # APPEND to /boot/firmware/config.txt + echo "Appending configs to $bootfirmwareconfig" + sudo bash -c "cat $bootfirmwareconfig_new >> $bootfirmwareconfig" + echo $? + fi -# finish the log -echo "reconfig_full.sh complete" >> $status_log + # finish the log + echo "reconfig_full.sh complete" >> $status_log -# start da services -bash $git_dir/services.sh start + # start da services + bash $git_dir/services.sh start } phase_one () { @@ -226,7 +227,7 @@ phase_four () { echo -e "\nAdd Grafana repo...\n" sudo mkdir -p /etc/apt/keyrings/ wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg - echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list >/dev/null # otherwisse get some stupid binary output to terminal + echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list >$devnull # otherwisse get some stupid binary output to terminal # telegraf repo and install echo -e "\nAdd Telegraf repo...\n" @@ -237,7 +238,7 @@ phase_four () { | gpg --dearmor \ | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive.gpg \ && echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive.gpg] https://repos.influxdata.com/debian stable main' \ - | sudo tee /etc/apt/sources.list.d/influxdata.list >/dev/null # otherwisse get some stupid binary output to terminal + | sudo tee /etc/apt/sources.list.d/influxdata.list >$devnull # otherwisse get some stupid binary output to terminal # remove dat key file thing if [ -f /home/$username/influxdata-archive.key ]; then @@ -351,7 +352,7 @@ phase_five () { # running (warn level) # bash ./reconfig_full.sh ./running-warn-level-conf # debug/dev mode - bash $git_dir/reconfig_full.sh "$git_dir/info-level-conf-huawaii" + reconfig_full "$git_dir/info-level-conf-huawaii" # safety delay echo -e "\nSleeping 60 seconds to make sure its as stable as possible\n"