diff --git a/install.sh b/install.sh index f331c33..3759e0a 100755 --- a/install.sh +++ b/install.sh @@ -69,7 +69,9 @@ ask_envs() { fi; echo "Invalid email address."; done +} +discover_services() { echo "Would you like to discover services? (Y/n)"; read -r ANSWER; if [ "$ANSWER" == "n" ] || [ "$ANSWER" == "N" ]; then @@ -96,7 +98,6 @@ ask_envs() { fi DISCOVERY_CONFIG_DIR=$(dirname $DISCOVERY_CONFIG_FILE) fi - } check_dirs_and_files() { @@ -344,128 +345,134 @@ if [ "$USER" != "root" ] ; then fi; fi; -echo "Would you like to install/update docker? (y/N)"; -read -r ANSWER; -if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ]; then - #install_docker_deb; - # install docker using apt-get - install_docker_apt +# first install +if [ ! -f "/etc/user/config/system.json" ]; then - echo "Wait..." - sleep 5 -fi - -check_running; - -check_dirs_and_files; - -ask_envs; - -$SUDO_CMD docker pull registry.format.hu/installer-tool - -# Validating previously created vaiables - -if [ "$SMARTHOST_PROXY" != "" ]; then - VAR_SMARTHOST_PROXY="--env SMARTHOST_PROXY=$SMARTHOST_PROXY"; -fi - -if [ "$LOCAL_PROXY" != "" ]; then - VAR_LOCAL_PROXY="--env LOCAL_PROXY=$LOCAL_PROXY"; -fi - -if [ "$VPN_PROXY" != "" ]; then - VAR_VPN_PROXY="--env VPN_PROXY=$VPN_PROXY"; -fi - -if [ "$DOMAIN" != "" ]; then - VAR_DOMAIN="--env DOMAIN=$DOMAIN"; -fi - -if [ "$CRON" != "" ]; then - VAR_CRON="--env CRON=$CRON"; -fi - -if [ "$DISCOVERY" != "" ]; then - VAR_DISCOVERY="--env DISCOVERY=$DISCOVERY"; -fi - -if [ "$DISCOVERY_DIR" != "" ]; then - VAR_DISCOVERY_DIR="--env DISCOVERY_DIR=$DISCOVERY_DIR"; - VAR_DISCOVERY_DIRECTORY="--volume $DISCOVERY_DIR/:$DISCOVERY_DIR/"; -fi - -if [ "$DISCOVERY_CONFIG_FILE" != "" ]; then - VAR_DISCOVERY_CONFIG_FILE="--env DISCOVERY_CONFIG_FILE=$DISCOVERY_CONFIG_FILE"; - VAR_DISCOVERY_CONFIG_DIRECTORY="--volume $DISCOVERY_CONFIG_DIR/:$DISCOVERY_CONFIG_DIR/"; -fi - - -# Run installer tool - -$SUDO_CMD docker run \ -$VAR_SMARTHOST_PROXY \ -$VAR_LOCAL_PROXY \ -$VAR_VPN_PROXY \ -$VAR_DOMAIN \ -$VAR_CRON \ -$VAR_DISCOVERY \ -$VAR_DISCOVERY_DIR \ -$VAR_DISCOVERY_DIRECTORY \ -$VAR_DISCOVERY_CONFIG_FILE \ -$VAR_DISCOVERY_CONFIG_DIRECTORY \ ---volume $HOME/.ssh/installer:/root/.ssh/id_rsa \ ---volume /etc/user/:/etc/user/ \ ---volume /etc/system/:/etc/system/ \ ---env LETSENCRYPT_MAIL=$LETSENCRYPT_MAIL registry.format.hu/installer-tool - - -# test - alias doesn't work inside a function -shopt -s expand_aliases -source $HOME/.bash_aliases - -INIT_SERVICE_PATH=/etc/user/config/services - -service-debian core-dns start -echo "$INIT_SERVICE_PATH/core-dns.json" >> $PWD/.init_services - -if [ "$CRON" == "yes" ]; then - service-debian cron start - echo "$INIT_SERVICE_PATH/cron.json" >> $PWD/.init_services -fi - -if [ "$VPN_PROXY" == "yes" ]; then - service-debian vpn-proxy start - echo "$INIT_SERVICE_PATH/vpn-proxy.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-vpn-smarthost-loadbalancer" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-vpn-proxy-postrouting" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-vpn-proxy-prerouting" >> $PWD/.init_services - -fi - -if [ "$SMARTHOST_PROXY" == "yes" ]; then - service-debian smarthost-proxy start - service-debian smarthost-proxy-scheduler start - service-debian local-proxy start - - echo "$INIT_SERVICE_PATH/smarthost-proxy.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-smarthost-loadbalancer-dns.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-letsencrypt.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-smarthostloadbalancer-from-publicbackend.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-smarthost-backend-dns.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-smarthost-to-backend.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/smarthost-proxy-scheduler.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/local-proxy.json" >> $PWD/.init_services - - echo "Would you like to run local backend? (Y/n)"; + echo "Would you like to install/update docker? (y/N)"; read -r ANSWER; - if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ] ; then - service-debian local-backend start - echo "$INIT_SERVICE_PATH/local-backend.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/firewall-local-backend.json" >> $PWD/.init_services - echo "$INIT_SERVICE_PATH/domain-local-backend.json" >> $PWD/.init_services - fi -fi + if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ]; then + #install_docker_deb; + # install docker using apt-get + install_docker_apt + echo "Wait..." + sleep 5 + fi + + check_running; + + check_dirs_and_files; + + ask_envs; + + discover_services; + + $SUDO_CMD docker pull registry.format.hu/installer-tool + + # Validating previously created vaiables + + if [ "$SMARTHOST_PROXY" != "" ]; then + VAR_SMARTHOST_PROXY="--env SMARTHOST_PROXY=$SMARTHOST_PROXY"; + fi + + if [ "$LOCAL_PROXY" != "" ]; then + VAR_LOCAL_PROXY="--env LOCAL_PROXY=$LOCAL_PROXY"; + fi + + if [ "$VPN_PROXY" != "" ]; then + VAR_VPN_PROXY="--env VPN_PROXY=$VPN_PROXY"; + fi + + if [ "$DOMAIN" != "" ]; then + VAR_DOMAIN="--env DOMAIN=$DOMAIN"; + fi + + if [ "$CRON" != "" ]; then + VAR_CRON="--env CRON=$CRON"; + fi + + if [ "$DISCOVERY" != "" ]; then + VAR_DISCOVERY="--env DISCOVERY=$DISCOVERY"; + fi + + if [ "$DISCOVERY_DIR" != "" ]; then + VAR_DISCOVERY_DIR="--env DISCOVERY_DIR=$DISCOVERY_DIR"; + VAR_DISCOVERY_DIRECTORY="--volume $DISCOVERY_DIR/:$DISCOVERY_DIR/"; + fi + + if [ "$DISCOVERY_CONFIG_FILE" != "" ]; then + VAR_DISCOVERY_CONFIG_FILE="--env DISCOVERY_CONFIG_FILE=$DISCOVERY_CONFIG_FILE"; + VAR_DISCOVERY_CONFIG_DIRECTORY="--volume $DISCOVERY_CONFIG_DIR/:$DISCOVERY_CONFIG_DIR/"; + fi + + + # Run installer tool + + $SUDO_CMD docker run \ + $VAR_SMARTHOST_PROXY \ + $VAR_LOCAL_PROXY \ + $VAR_VPN_PROXY \ + $VAR_DOMAIN \ + $VAR_CRON \ + $VAR_DISCOVERY \ + $VAR_DISCOVERY_DIR \ + $VAR_DISCOVERY_DIRECTORY \ + $VAR_DISCOVERY_CONFIG_FILE \ + $VAR_DISCOVERY_CONFIG_DIRECTORY \ + --volume $HOME/.ssh/installer:/root/.ssh/id_rsa \ + --volume /etc/user/:/etc/user/ \ + --volume /etc/system/:/etc/system/ \ + --env LETSENCRYPT_MAIL=$LETSENCRYPT_MAIL registry.format.hu/installer-tool + + + # test - alias doesn't work inside a function + shopt -s expand_aliases + source $HOME/.bash_aliases + + INIT_SERVICE_PATH=/etc/user/config/services + + service-debian core-dns start + echo "$INIT_SERVICE_PATH/core-dns.json" >> $PWD/.init_services + + if [ "$CRON" == "yes" ]; then + service-debian cron start + echo "$INIT_SERVICE_PATH/cron.json" >> $PWD/.init_services + fi + + if [ "$VPN_PROXY" == "yes" ]; then + service-debian vpn-proxy start + echo "$INIT_SERVICE_PATH/vpn-proxy.json" >> $PWD/.init_services + echo "$INIT_SERVICE_PATH/firewall-vpn-smarthost-loadbalancer" >> $PWD/.init_services + echo "$INIT_SERVICE_PATH/firewall-vpn-proxy-postrouting" >> $PWD/.init_services + echo "$INIT_SERVICE_PATH/firewall-vpn-proxy-prerouting" >> $PWD/.init_services + + fi + + if [ "$SMARTHOST_PROXY" == "yes" ]; then + service-debian smarthost-proxy start + service-debian smarthost-proxy-scheduler start + service-debian local-proxy start + + echo "$INIT_SERVICE_PATH/smarthost-proxy.json" >> $PWD/.init_services + echo "$INIT_SERVICE_PATH/firewall-smarthost-loadbalancer-dns.json" >> $PWD/.init_services + echo "$INIT_SERVICE_PATH/firewall-letsencrypt.json" >> $PWD/.init_services + echo "$INIT_SERVICE_PATH/firewall-smarthostloadbalancer-from-publicbackend.json" >> $PWD/.init_services + echo "$INIT_SERVICE_PATH/firewall-smarthost-backend-dns.json" >> $PWD/.init_services + echo "$INIT_SERVICE_PATH/firewall-smarthost-to-backend.json" >> $PWD/.init_services + echo "$INIT_SERVICE_PATH/smarthost-proxy-scheduler.json" >> $PWD/.init_services + echo "$INIT_SERVICE_PATH/local-proxy.json" >> $PWD/.init_services + + echo "Would you like to run local backend? (Y/n)"; + read -r ANSWER; + if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ] ; then + service-debian local-backend start + echo "$INIT_SERVICE_PATH/local-backend.json" >> $PWD/.init_services + echo "$INIT_SERVICE_PATH/firewall-local-backend.json" >> $PWD/.init_services + echo "$INIT_SERVICE_PATH/domain-local-backend.json" >> $PWD/.init_services + fi + fi + +fi; # install additionals - run installer-tool again but additional_install.sh instead of deploy.sh echo "Would you like to install additional applications? (Y/n)"; @@ -517,12 +524,14 @@ if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ]; then --volume /etc/system/:/etc/system/ \ registry.format.hu/installer-tool - if [ "$ADDITIONAL_SERVICE" != "" ]; then - for ADDITIONAL_SERVICE in $(echo $ADDITIONAL_SERVICES); do - service-debian $ADDITIONAL_SERVICE start - echo "$INIT_SERVICE_PATH/$ADDITIONAL_SERVICE.json" >> $PWD/.init_services - done - fi + if [ "$ADDITIONAL_SERVICE" != "" ]; then + for ADDITIONAL_SERVICE in $(echo $ADDITIONAL_SERVICES); do + service-debian $ADDITIONAL_SERVICE start + echo "$INIT_SERVICE_PATH/$ADDITIONAL_SERVICE.json" >> $PWD/.init_services + done + fi + + discover_services; fi if [ "$DISCOVERY" == "yes" ] ; then