#!/bin/bash # support special char [!"`$%()[]{},.*+-:;<=>?_~/|] new_password=$(pwgen -ncCs 14 1)! sudo sleep 10s sudo sh -c 'echo "init-password started at" $(date -d now) 1>> /tmp/init_debug.txt' {% for app_name in applist.stdout_lines %} #1 init for applist of .env sudo docker compose -f /data/apps/{{app_name}}/docker-compose.yml down -v # init password has_app_password=$(cat /data/apps/{{app_name}}/.env |grep APP_PASSWORD) if [ $has_app_password == "" ]; then sudo sed -i "s/_PASSWORD=.*/_PASSWORD=$new_password/g" /data/apps/{{app_name}}/.env else # has_app_encrypt has_app_encrypt=$(cat /data/apps/{{app_name}}/.env |grep "APP_ENCRYPT=") if [ $has_app_encrypt == "" ]; then sudo sed -i "s/APP_PASSWORD=.*/APP_PASSWORD=$new_password/g" /data/apps/{{app_name}}/.env else sudo sed -i "s/APP_PASSWORD=.*/APP_PASSWORD=$new_password/g" /data/apps/{{app_name}}/.env cat .env |grep "APP_ENCRYPT=" |awk -F"APP_ENCRYPT=" '{ print $2 }'|awk -F'"' '{ print $2 }' > /tmp/encrypt.sh app_encrypt_password=$(bash /tmp/encrypt.sh) sudo sed -i "s/APP_ENCRYPT_PASSWORD=.*/APP_ENCRYPT_PASSWORD=$app_encrypt_password/g" /data/apps/{{app_name}}/.env fi fi # change all the variables to real value,such as DB_MYSQL_PASSWORD=$APP_PASSWORD=>DB_MYSQL_PASSWORD=ues983ks9309023! TODO # init APP_URL app_url_replace=$(cat /data/apps/{{app_name}}/.env |grep APP_URL_REPLACE) if [ $app_url_replace == "APP_URL_REPLACE=true" ]; then public_ip=`wget -O - https://download.websoft9.com/ansible/get_ip.sh | bash` sudo sed -i "s/APP_URL=.*/APP_URL=$public_ip/g" /data/apps/{{app_name}}/.env else echo "There is not APP_URL" fi sudo docker compose -f /data/apps/{{app_name}}/docker-compose.yml up -d --no-recreate #2 init for applist of special after_path=/data/apps/{{app_name}}/src/after_up.sh if [ -f "$after_path" ]; then bash /data/apps/{{app_name}}/src/after_up.sh else echo "There is not after_up" fi {% endfor %} sudo sh -c 'echo "init docker ended at" $(date -d now) 1>> /tmp/init_debug.txt'