Major changes in deploy script
This commit is contained in:
114
deploy.sh
114
deploy.sh
@@ -4,6 +4,10 @@ toUpperCase() {
|
|||||||
echo "$*" | tr '[:lower:]' '[:upper:]';
|
echo "$*" | tr '[:lower:]' '[:upper:]';
|
||||||
}
|
}
|
||||||
GIT_REPO=$GIT_REPO
|
GIT_REPO=$GIT_REPO
|
||||||
|
if [ "$GIT_REPO" == "" ]; then
|
||||||
|
GIT_REPO=git.format.hu
|
||||||
|
fi
|
||||||
|
|
||||||
ORGANIZATION=$ORGANIZATION
|
ORGANIZATION=$ORGANIZATION
|
||||||
|
|
||||||
if [ "$ORGANIZATION" == "" ]; then
|
if [ "$ORGANIZATION" == "" ]; then
|
||||||
@@ -15,11 +19,6 @@ SMARTHOST_PROXY=$(toUpperCase $SMARTHOST_PROXY)
|
|||||||
WIREGUARD=$(toUpperCase $WIREGUARD)
|
WIREGUARD=$(toUpperCase $WIREGUARD)
|
||||||
OPENVPN=$(toUpperCase $OPENVPN)
|
OPENVPN=$(toUpperCase $OPENVPN)
|
||||||
|
|
||||||
SERVICE_DIR=$SERVICE_DIR
|
|
||||||
PROXY_DIR=$PROXY_DIR
|
|
||||||
PROXY_LOG_DIR=$PROXY_LOG_DIR
|
|
||||||
DNS_DIR=$DNS_DIR
|
|
||||||
|
|
||||||
|
|
||||||
if [[ "$PUBLIC_PROXY" == "YES" || "$PUBLIC_PROXY" == "TRUE" ]]; then
|
if [[ "$PUBLIC_PROXY" == "YES" || "$PUBLIC_PROXY" == "TRUE" ]]; then
|
||||||
PROXY_TYPE=public-proxy;
|
PROXY_TYPE=public-proxy;
|
||||||
@@ -34,7 +33,7 @@ fi
|
|||||||
for i in $(echo $PROXY_TYPE); do
|
for i in $(echo $PROXY_TYPE); do
|
||||||
|
|
||||||
# Clone source files from git repository
|
# Clone source files from git repository
|
||||||
git clone ssh://$GIT_REPO/$ORGANIZATION/$i.git /tmp/
|
git clone ssh://$GIT_REPO/$ORGANIZATION/$i.git /tmp/$i
|
||||||
|
|
||||||
#if [ "$i" == "public-proxy" ] ; then
|
#if [ "$i" == "public-proxy" ] ; then
|
||||||
|
|
||||||
@@ -42,48 +41,60 @@ for i in $(echo $PROXY_TYPE); do
|
|||||||
#if [[ "$WIREGUARD" == "YES" || "$WIREGUARD" == "TRUE" ]]; then
|
#if [[ "$WIREGUARD" == "YES" || "$WIREGUARD" == "TRUE" ]]; then
|
||||||
|
|
||||||
# COPY SERVICE FILES INTO SRVICE DIR
|
# COPY SERVICE FILES INTO SRVICE DIR
|
||||||
|
|
||||||
|
# DEFINE SERVICE DIR FROM PROXY-SCHEDULER AND PROXY SERVICE FILE JSONS
|
||||||
|
|
||||||
if [ "$SERVICE_DIR" == "" ] ; then
|
if [ "$i" == "public-proxy" ] ; then
|
||||||
SERVICE_DIR="/etc/user/config/services";
|
PROXY_SCHEDULER_FILE=proxy-scheduler.json
|
||||||
mkdir -p $SERVICE_DIR;
|
else
|
||||||
fi
|
PROXY_SCHEDULER_FILE=smarthost-proxy-scheduler.json
|
||||||
|
fi
|
||||||
|
|
||||||
|
PROXY_SCHEDULER_NAME=$(jq -r .containers[0].NAME /tmp/$i/$PROXY_SERVICE_FILE | cut -d "-" -f1)
|
||||||
|
PROXY_SERVICE_FILE=$(jq -r .$PROXY_SCHEDULER_NAME.PROXY_SERVICE_FILE /tmp/$i/proxy_config)
|
||||||
|
SERVICE_DIR=$(jq -r .containers[0].VOLUMES[].SOURCE /tmp/$i/$PROXY_SERVICE_FILE |grep $PROXY_SERVICE_FILE | sed s/$PROXY_SERVICE_FILE//g)
|
||||||
|
|
||||||
cp -av /tmp/$REPOSITORY/$i/*.json $SERVICE_DIR/
|
PROXY_CONFIG_DIR=$(jq -r .$PROXY_SCHEDULER_NAME.PROXY_CONFIG_DIR /tmp/$i/proxy_config)
|
||||||
|
PROXY_VOLUME=$(jq -r --arg DEST "$PROXY_CONFIG_DIR" '.containers[0].VOLUMES[] | select(.DEST==$DEST)' /tmp/$i/$PROXY_SERVICE_FILE)
|
||||||
|
PROXY_DIR=$(echo $PROXY_VOLUME | jq -r .SOURCE)
|
||||||
|
PROXY_DIR=$(dirname $PROXY_DIR | sed s/$i//g)
|
||||||
|
|
||||||
|
DOMAIN_CONFIG_DIR=$(jq -r .$PROXY_SCHEDULER_NAME.DOMAIN_DIR /tmp/$i/proxy_config)
|
||||||
|
DOMAIN_VOLUME=$(jq -r --arg DEST "$DOMAIN_CONFIG_DIR" '.containers[0].VOLUMES[] | select(.DEST==$DEST)' /tmp/$i/$PROXY_SERVICE_FILE)
|
||||||
|
DOMAIN_DIR=$(echo $DOMAIN_VOLUME | jq -r .SOURCE)
|
||||||
|
|
||||||
|
mkdir -p $SERVICE_DIR;
|
||||||
|
|
||||||
|
cp -av /tmp/$i/*.json $SERVICE_DIR/
|
||||||
|
|
||||||
# CREATE FILESYSTEM ACCESS FOR SERVICES
|
# CREATE FILESYSTEM ACCESS FOR SERVICES
|
||||||
|
|
||||||
if [ "$PROXY_DIR" == "" ] ; then
|
|
||||||
$PROXY_DIR="/etc/system/config/$i";
|
mkdir -p $PROXY_DIR
|
||||||
else
|
mkdir -p $DOMAIN_DIR
|
||||||
$PROXY_DIR="$PROXY_DIR/$i"
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p $PROXY_DIR/loadbalancer;
|
|
||||||
mkdir -p PROXY_DIR/backend;
|
|
||||||
|
|
||||||
if [ "$PROXY_LOG_DIR" == "" ] ; then
|
|
||||||
$PROXY_LOG_DIR="/etc/system/log/$i" ;
|
|
||||||
else
|
|
||||||
$PROXY_LOG_DIR="$PROXY_LOG_DIR/$i" ;
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p $PROXY_LOG_DIR/loadbalancer;
|
|
||||||
mkdir -p $PROXY_LOG_DIR/backend;
|
|
||||||
|
|
||||||
|
SPEC_PROXY_DIR=$PROXY_DIR/$i
|
||||||
|
|
||||||
|
# CREATE ALL SOURCE FOLDER FOR RUNNING PROXIES
|
||||||
|
|
||||||
|
PROXY_VOLUMES=$(jq -r .containers[].VOLUMES[].SOURCE /tmp/$i/$i.json |grep -v '\.')
|
||||||
|
|
||||||
|
for VOLUME in $(echo $PROXY_VOLUMES); do
|
||||||
|
mkdir -p $VOLUME;
|
||||||
|
done
|
||||||
|
|
||||||
# CREATE PROXY SCHEDULER SERVICE
|
# CREATE PROXY SCHEDULER SERVICE
|
||||||
|
|
||||||
# CHECK prox config file exists
|
# CHECK proxy config file exists
|
||||||
SOURCE=$(cat /tmp/$REPOSITORY/$i/proxy_config);
|
SOURCE=$(cat /tmp/$i/proxy_config| tail -n+2 |head -n-2);
|
||||||
TARGET=$(cat $PUBLIC_PROXY_DIR/proxy.json | tail -n+2);
|
TARGET=$(cat $PROXY_DIR/proxy.json | tail -n+2);
|
||||||
TMP_FILE=/tmp/proxy.json
|
TMP_FILE=/tmp/proxy.json
|
||||||
{
|
{
|
||||||
echo "{"
|
echo "{"
|
||||||
cat $SOURCE
|
echo $SOURCE
|
||||||
} > "$TMP_FILE";
|
} > "$TMP_FILE";
|
||||||
|
|
||||||
if [ -f $PUBLIC_PROXY_DIR/proxy.json ]; then
|
if [[ -f $PROXY_DIR/proxy.json ]]; then
|
||||||
{
|
{
|
||||||
echo "},"
|
echo "},"
|
||||||
echo $TARGET
|
echo $TARGET
|
||||||
@@ -95,25 +106,36 @@ for i in $(echo $PROXY_TYPE); do
|
|||||||
} >> "$TMP_FILE";
|
} >> "$TMP_FILE";
|
||||||
fi
|
fi
|
||||||
|
|
||||||
jq -r . $TMP_FILE > $PUBLIC_PROXY_DIR/proxy.json
|
# formats json content and removes duplications
|
||||||
|
jq -r . $TMP_FILE > $PROXY_DIR/proxy.json
|
||||||
|
|
||||||
if [ "$i" == "public-proxy" ]; then
|
if [ "$i" == "public-proxy" ]; then
|
||||||
|
|
||||||
# COPY LOADBALANCER STATIC CONFIG
|
# COPY LOADBALANCER STATIC CONFIG
|
||||||
|
|
||||||
cp -av /tmp/$REPOSITORY/$i/haproxy.cfg $PUBLIC_PROXY_DIR/loadbalancer/ ;
|
mkdir -p $SPEC_PROXY_DIR/loadbalancer;
|
||||||
|
cp -av /tmp/$i/haproxy.cfg $SPEC_PROXY_DIR/loadbalancer/ ;
|
||||||
|
|
||||||
# COPY PROXY DNS FILES
|
|
||||||
|
|
||||||
git clone ssh://$GIT_REPO/$ORGANIZATION/proxy-dns.git
|
|
||||||
|
|
||||||
if [ "$DNS_DIR" == "" ] ; then
|
|
||||||
$DNS_DIR="/etc/system/data/proxy-dns";
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p $DNS_DIR;
|
|
||||||
cp -arv /tmp/$REPOSITORY/proxy-dns/ $DNS_DIR/ ;
|
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
|
if [ "$i" == "smarthost-proxy" ]; then
|
||||||
|
git clone ssh://$GIT_REPO/$ORGANIZATION/$PROXY_DNS.git /tmp/$PROXY_DNS
|
||||||
|
|
||||||
|
# COPY PROXY DNS FILES
|
||||||
|
if [ "$PROXY_DNS" == "" ]; then
|
||||||
|
PROXY_DNS=proxy-dns
|
||||||
|
fi
|
||||||
|
|
||||||
|
DNS_VOLUMES=$(jq -r .containers[].VOLUMES[].SOURCE /tmp/$i/$PROXY_DNS.json |grep -v '\.')
|
||||||
|
|
||||||
|
for VOLUME in $(echo $DNS_VOLUMES); do
|
||||||
|
mkdir -p $VOLUME;
|
||||||
|
done
|
||||||
|
|
||||||
|
DNS_VOLUMES=$(jq -r --arg DEST "/etc/dnsmasq" '.containers[0].VOLUMES[] | select(.DEST | startswith($DEST))' /tmp/$i/$PROXY_DNS.json)
|
||||||
|
DNS_DIR=$(echo $DNS_VOLUMES | jq -r .SOURCE)
|
||||||
|
|
||||||
|
mkdir -p $DNS_DIR;
|
||||||
|
cp -rv /tmp/$PROXY_DNS/* $DNS_DIR/ ;
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
@@ -1,5 +1,17 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
toUpperCase() {
|
||||||
|
echo "$*" | tr '[:lower:]' '[:upper:]';
|
||||||
|
}
|
||||||
|
GIT_REPO=$GIT_REPO
|
||||||
|
ORGANIZATION=$ORGANIZATION
|
||||||
|
|
||||||
|
if [ "$ORGANIZATION" == "" ]; then
|
||||||
|
ORGANIZATION=format
|
||||||
|
fi
|
||||||
|
|
||||||
|
PUBLIC_PROXY=$(toUpperCase $PUBLIC_PROXY)
|
||||||
|
SMARTHOST_PROXY=$(toUpperCase $SMARTHOST_PROXY)
|
||||||
GIT_REPOSITORY=$GIT_REPOSITORY
|
GIT_REPOSITORY=$GIT_REPOSITORY
|
||||||
HOST=$HOST
|
HOST=$HOST
|
||||||
PORT=$PORT
|
PORT=$PORT
|
||||||
|
Reference in New Issue
Block a user