2 Коммиты 4a8c6131cf ... f87748cc53

Автор SHA1 Сообщение Дата
  Dmitry Yu Okunev f87748cc53 Reenabled generate-certificate.sh лет назад: 5
  Dmitry Yu Okunev 524cc47441 Updated лет назад: 5
1 измененных файлов с 17 добавлено и 2 удалено
  1. 17 2
      reload-instance-list.sh

+ 17 - 2
reload-instance-list.sh

@@ -26,6 +26,7 @@ oldIFS="$IFS"
 
 declare -A OLD_IDS_IP
 declare -A OLD_IDS_ID
+declare -A NEW_IP
 
 for LINE in $(pdnsutil list-zone "$ZONE" 2>/dev/null | sed -e "s/\\.$ZONE//g" | tr "\t" "@"); do
 	IFS="@"; WORDS=($LINE); IFS="$oldIFS"
@@ -55,6 +56,7 @@ for LINE in ${CURRENT_INSTANCES[@]}; do
 	fi
 	OLD_IDS_IP[$ID]=""
 	OLD_IDS_ID[$ID]=""
+	NEW_IP[$ID]="$IP"
 done
 
 for OLD_ID in ${OLD_IDS_ID[@]}; do
@@ -119,6 +121,8 @@ EOF
 	#server backup1 192.168.1.132:80 check backup inter 25s
 done
 
+declare -A ID_BACKEND_EXT_ISSET
+
 for LINE in $(cat /etc/webaliases); do
 	IFS=":"; WORDS=($LINE); IFS="$oldIFS"
 	HOST="${WORDS[0]}"
@@ -131,13 +135,24 @@ for LINE in $(cat /etc/webaliases); do
 
 	cat >> /etc/haproxy/gen-conf.d/050-frontends.conf <<EOF
 	acl host_${ID}_external hdr(host) -i ${HOST}
+EOF
+done
+
+for LINE in $(cat /etc/webaliases); do
+	IFS=":"; WORDS=($LINE); IFS="$oldIFS"
+	HOST="${WORDS[0]}"
+	ID="${WORDS[1]}"
+	if [ "${ID_BACKEND_EXT_ISSET[$ID]}" = '' ]; then
+		cat >> /etc/haproxy/gen-conf.d/050-frontends.conf <<EOF
 	use_backend backend_${ID}_external if host_${ID}_external
 EOF
-	cat >> /etc/haproxy/gen-conf.d/060-backends.conf <<EOF
+		ID_BACKEND_EXT_ISSET[$ID]=true
+		cat >> /etc/haproxy/gen-conf.d/060-backends.conf <<EOF
 backend backend_${ID}_external
 	mode http
-	server primary ${IP}:80
+	server primary ${NEW_IP[$ID]}:80
 EOF
+	fi
 done
 
 cat /etc/haproxy/gen-conf.d/* > /etc/haproxy/haproxy.cfg