67 lines
1.5 KiB
Bash
Executable File
67 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Генерация конфигурации демона hcd из topology.env — единственного источника
|
|
# правды по адресам стенда. Пока пул задан статически; на следующем шаге его
|
|
# место займёт модель Load_Balancer -> Listener -> Pool -> Member в OVSDB.
|
|
set -euo pipefail
|
|
|
|
LB_DIR=/opt/lb
|
|
# shellcheck disable=SC1091
|
|
source "$LB_DIR/topology.env"
|
|
|
|
OUT=${1:-/var/run/openvswitch/hc.json}
|
|
|
|
cat > "$OUT" <<EOF
|
|
{
|
|
"bridge": "$BR",
|
|
"of_version": "$OF",
|
|
"pool_id": $POOL_ID,
|
|
"slots": $SLOTS,
|
|
"slot_table": 11,
|
|
"dnat_table": 12,
|
|
"probe": "$HC_PROBE",
|
|
"http_path": "$HC_HTTP_PATH",
|
|
"interval": "$HC_INTERVAL",
|
|
"timeout": "$HC_TIMEOUT",
|
|
"rise": $HC_RISE,
|
|
"fall": $HC_FALL,
|
|
"api": "$HC_API",
|
|
"apply_script": "$LB_DIR/apply.sh",
|
|
"members": [
|
|
{
|
|
"id": 1,
|
|
"name": "be1",
|
|
"address": "$BE1_IP",
|
|
"port": $BE1_PORT,
|
|
"weight": 1,
|
|
"source": "$HC2_IP"
|
|
},
|
|
{
|
|
"id": 2,
|
|
"name": "be2",
|
|
"address": "$BE2_IP",
|
|
"port": $BE2_PORT,
|
|
"weight": 1,
|
|
"source": "$HC3_IP"
|
|
},
|
|
{
|
|
"id": 3,
|
|
"name": "be3",
|
|
"address": "$BE3_IP",
|
|
"port": $BE3_PORT,
|
|
"weight": 1,
|
|
"source": "$HC2_IP"
|
|
},
|
|
{
|
|
"id": 4,
|
|
"name": "be4",
|
|
"address": "$BE4_IP",
|
|
"port": $BE4_PORT,
|
|
"weight": 1,
|
|
"source": "$HC3_IP"
|
|
}
|
|
]
|
|
}
|
|
EOF
|
|
|
|
echo "$OUT"
|