Типовые параметры, авто-RAID, авто-сети NAT/DHCP
This commit is contained in:
parent
17bbb8518e
commit
9da133eb4a
|
|
@ -22,12 +22,12 @@ fi
|
|||
HOSTNAME_FQDN="br-fw.au-team.irpo" # таблица 3, запись br-fw.au-team.irpo
|
||||
|
||||
# --- Интерфейс в сторону BR-RTR (сеть с минимально возможной маской /30) ---
|
||||
BR_RTR_IF="" # интерфейс к BR-RTR
|
||||
BR_RTR_IF="enp0s3" # 1-й NIC — к BR-RTR (если порядок иной — поменять)
|
||||
BR_RTR_ADDR="" # адрес BR-FW в этой сети, формат адрес/префикс (/30)
|
||||
BR_RTR_GW="" # адрес BR-RTR в этой же сети — маршрут по умолчанию
|
||||
|
||||
# --- Интерфейс в сторону BR-SRV (сеть не более 16 адресов) ---
|
||||
BR_SRV_IF="" # интерфейс к BR-SRV
|
||||
BR_SRV_IF="enp0s8" # 2-й NIC — к BR-SRV
|
||||
BR_SRV_ADDR="" # адрес BR-FW в этой сети, формат адрес/префикс
|
||||
|
||||
# --- OSPF (протокол разрешён ТОЛЬКО на интерфейсе к BR-RTR; пароля нет —
|
||||
|
|
|
|||
|
|
@ -19,19 +19,18 @@ NET_ADMIN_USER="net_admin"
|
|||
NET_ADMIN_PASS="P@ssw0rd"
|
||||
|
||||
# --- Интерфейс в сторону ISP ---
|
||||
ISP_IF="" # интерфейс к ISP (пример: enp0s3)
|
||||
ISP_NET="" # адрес BR-RTR в этой сети, формат адрес/префикс
|
||||
# (по заданию сеть 172.16.2.0/28)
|
||||
ISP_GW="" # шлюз по умолчанию — адрес ISP в этой же сети
|
||||
DNS_ROUTER="" # внешний DNS для роутера (необязательно, например 77.88.8.7)
|
||||
ISP_IF="enp0s3" # 1-й NIC — к ISP (если порядок иной — поменять)
|
||||
ISP_NET="172.16.2.2/28" # адрес BR-RTR в сети линка (по заданию 172.16.2.0/28, .2 = BR-RTR)
|
||||
ISP_GW="172.16.2.1" # шлюз — адрес ISP в этой же сети
|
||||
DNS_ROUTER="77.88.8.7" # внешний DNS для роутера (можно заменить, пусть пусто чтобы убрать)
|
||||
|
||||
# --- Интерфейс в сторону BR-FW (сеть с минимально возможной маской) ---
|
||||
BR_LINK_IF="" # интерфейс к BR-FW (пример: enp0s8)
|
||||
BR_LINK_IF="enp0s8" # 2-й NIC — к BR-FW
|
||||
BR_LINK_ADDR="" # адрес BR-RTR в этой сети, адрес/префикс (маска /30 — см. калькулятор)
|
||||
|
||||
# --- Локальная сеть в сторону BR-SRV (через BR-FW; не более 16 адресов) ---
|
||||
# Нужна только для правил NAT — адрес BR-RTR здесь назначает BR-FW.
|
||||
NAT_NETS="" # через пробел, например: "<сеть к BR-FW/префикс> <сеть BR-SRV/префикс>"
|
||||
BR_SRV_NET="" # сеть BR-SRV, адрес/префикс (сеть линка к BR-FW вычисляется автоматически)
|
||||
|
||||
# --- GRE-туннель до HQ-RTR (сеть 10.10.10.0/24, минимальная маска -> /30) ---
|
||||
GRE_IF="gre1"
|
||||
|
|
@ -55,7 +54,7 @@ IPTABLES_SERVICE="iptables" # ПРОВЕРИТЬ
|
|||
# ============ Проверка заполнения переменных ============
|
||||
MISSING=()
|
||||
for NAME in HOSTNAME_FQDN ISP_IF ISP_NET ISP_GW BR_LINK_IF BR_LINK_ADDR \
|
||||
NAT_NETS GRE_LOCAL GRE_REMOTE EXAM_TZ; do
|
||||
BR_SRV_NET GRE_LOCAL GRE_REMOTE EXAM_TZ; do
|
||||
[[ -z "${!NAME}" ]] && MISSING+=("$NAME")
|
||||
done
|
||||
if [[ ${#MISSING[@]} -gt 0 ]]; then
|
||||
|
|
@ -160,7 +159,9 @@ sysctl -p "$FORWARD_CONF"
|
|||
|
||||
# --- 7. NAT в сторону ISP ---
|
||||
echo "--- NAT (MASQUERADE) ---"
|
||||
for SRC_NET in $NAT_NETS; do
|
||||
# Сеть линка к BR-FW вычисляется из адреса, сеть BR-SRV — из переменной
|
||||
LINK_NET=$(python3 -c "import ipaddress,sys; print(ipaddress.ip_network(sys.argv[1], strict=False))" "$BR_LINK_ADDR")
|
||||
for SRC_NET in "$LINK_NET" "$BR_SRV_NET"; do
|
||||
if iptables -t nat -C POSTROUTING -s "$SRC_NET" -o "$ISP_IF" -j MASQUERADE 2>/dev/null; then
|
||||
echo "Правило для $SRC_NET уже есть"
|
||||
else
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ fi
|
|||
HOSTNAME_FQDN="br-srv.au-team.irpo" # таблица 3, запись br-srv.au-team.irpo
|
||||
|
||||
# --- Сеть ---
|
||||
SRV_IF="" # интерфейс в сторону BR-FW
|
||||
SRV_IF="enp0s3" # 1-й NIC — к BR-FW
|
||||
SRV_ADDR="" # адрес BR-SRV в сети BR (сеть не более 16 адресов), адрес/префикс
|
||||
SRV_GW="" # шлюз — адрес BR-FW в этой же сети
|
||||
DNS_SRV="" # DNS для сервера — адрес HQ-SRV (основной DNS по заданию)
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ fi
|
|||
# ================= ПЕРЕМЕННЫЕ (заполните перед запуском) =================
|
||||
HOSTNAME_FQDN="hq-cli.au-team.irpo" # таблица 3, запись hq-cli.au-team.irpo
|
||||
|
||||
CLI_IF="" # интерфейс к HQ-SW (access-порт VLAN 200; тег ставит только HQ-SW)
|
||||
CLI_IF="enp0s3" # 1-й NIC — к HQ-SW (VLAN 200), адрес по DHCP
|
||||
|
||||
EXAM_TZ="Europe/Moscow" # проверить на экзамене
|
||||
NM_CONF_DIR="/etc/NetworkManager/system-connections"
|
||||
|
|
|
|||
|
|
@ -20,14 +20,13 @@ NET_ADMIN_USER="net_admin"
|
|||
NET_ADMIN_PASS="P@ssw0rd"
|
||||
|
||||
# --- Интерфейс в сторону ISP ---
|
||||
ISP_IF="" # интерфейс к ISP (пример: enp0s3)
|
||||
ISP_NET="" # адрес HQ-RTR в этой сети, формат адрес/префикс
|
||||
# (по заданию сеть 172.16.1.0/28)
|
||||
ISP_GW="" # шлюз по умолчанию — адрес ISP в этой же сети
|
||||
DNS_ROUTER="" # внешний DNS для роутера (необязательно, например 77.88.8.7)
|
||||
ISP_IF="enp0s3" # 1-й NIC — к ISP (если порядок иной — поменять)
|
||||
ISP_NET="172.16.1.2/28" # адрес HQ-RTR в сети линка (по заданию 172.16.1.0/28, .2 = HQ-RTR)
|
||||
ISP_GW="172.16.1.1" # шлюз — адрес ISP в этой же сети
|
||||
DNS_ROUTER="77.88.8.7" # внешний DNS для роутера (можно заменить, оставить пустым чтобы убрать)
|
||||
|
||||
# --- Локальные VLAN на ОДНОМ физическом адаптере ---
|
||||
LAN_IF="" # физический адаптер в сторону HQ-SW (пример: enp0s8)
|
||||
LAN_IF="enp0s8" # 2-й NIC — физический адаптер в сторону HQ-SW (для VLAN 100/200/999)
|
||||
VLAN100_ADDR="" # адрес HQ-RTR в VLAN 100 (сеть не более 32 адресов), адрес/префикс
|
||||
VLAN200_ADDR="" # адрес HQ-RTR в VLAN 200 (сеть не более 16 адресов), адрес/префикс
|
||||
VLAN999_ADDR="" # адрес HQ-RTR в VLAN 999 (сеть не более 8 адресов), адрес/префикс
|
||||
|
|
@ -47,16 +46,15 @@ FRR_DAEMONS="/etc/frr/daemons"
|
|||
|
||||
# --- NAT в сторону ISP (адресации не содержит) ---
|
||||
# Список сетей офиса для NAT — адреса сетей с префиксом (для правил iptables).
|
||||
NAT_NETS="" # через пробел, например: "<сеть VLAN100/префикс> <сеть VLAN200/префикс> <сеть VLAN999/префикс>"
|
||||
# NAT-сети ВЫЧИСЛЯЮТСЯ автоматически из VLAN-адресов ниже (после проверок)
|
||||
|
||||
# --- DHCP для VLAN 200 (клиент — HQ-CLI) ---
|
||||
DHCP_PACKAGE="dhcp-server" # ПРОВЕРИТЬ: пакет DHCP-сервера в РЕД ОС 8
|
||||
DHCPD_SERVICE="dhcpd" # ПРОВЕРИТЬ: имя службы
|
||||
DHCPD_CONF="/etc/dhcp/dhcpd.conf"
|
||||
DHCP_SUBNET="" # адрес сети VLAN 200 (без префикса)
|
||||
DHCP_NETMASK="" # маска этой сети (255.255.255.x)
|
||||
DHCP_RANGE_FIRST="" # первый адрес выдачи (АДРЕС HQ-RTR ВЫПАДАЕТ: он вне range)
|
||||
DHCP_RANGE_LAST="" # последний адрес выдачи
|
||||
# Параметры DHCP ВЫЧИСЛЯЮТСЯ автоматически из VLAN200_ADDR (после проверок):
|
||||
# subnet/маска — из адреса, range — со следующего после адреса HQ-RTR (тем самым
|
||||
# адрес роутера исключается из выдачи), последний — broadcast-1.
|
||||
DHCP_DOMAIN="au-team.irpo"
|
||||
HQ_SRV_IP="" # адрес HQ-SRV (VLAN 100) — DNS-сервер для HQ-CLI
|
||||
|
||||
|
|
@ -69,8 +67,7 @@ IPTABLES_SERVICE="iptables" # ПРОВЕРИТЬ
|
|||
# ============ Проверка заполнения переменных ============
|
||||
MISSING=()
|
||||
for NAME in HOSTNAME_FQDN ISP_IF ISP_NET ISP_GW LAN_IF VLAN100_ADDR VLAN200_ADDR \
|
||||
VLAN999_ADDR GRE_LOCAL GRE_REMOTE NAT_NETS DHCP_SUBNET DHCP_NETMASK \
|
||||
DHCP_RANGE_FIRST DHCP_RANGE_LAST HQ_SRV_IP EXAM_TZ; do
|
||||
VLAN999_ADDR GRE_LOCAL GRE_REMOTE HQ_SRV_IP EXAM_TZ; do
|
||||
[[ -z "${!NAME}" ]] && MISSING+=("$NAME")
|
||||
done
|
||||
if [[ ${#MISSING[@]} -gt 0 ]]; then
|
||||
|
|
@ -78,6 +75,23 @@ if [[ ${#MISSING[@]} -gt 0 ]]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# ==== Автозаполнение (требуется python3) ====
|
||||
# Сети офиса для NAT — из адресов VLAN
|
||||
NAT_NETS=$(python3 -c "
|
||||
import ipaddress, sys
|
||||
nets = [ipaddress.ip_network(a, strict=False) for a in sys.argv[1:]]
|
||||
print(' '.join(map(str, nets)))" "$VLAN100_ADDR" "$VLAN200_ADDR" "$VLAN999_ADDR")
|
||||
# Параметры DHCP для VLAN 200: subnet, маска, первый/последний адрес выдачи
|
||||
read -r DHCP_SUBNET DHCP_NETMASK DHCP_RANGE_FIRST DHCP_RANGE_LAST <<< "$(python3 -c "
|
||||
import ipaddress, sys
|
||||
a = ipaddress.ip_interface(sys.argv[1])
|
||||
n = a.network
|
||||
first = int(a.ip) + 1
|
||||
last = int(n.broadcast_address) - 1
|
||||
print(n.network_address, n.netmask, ipaddress.ip_address(first), ipaddress.ip_address(last))" "$VLAN200_ADDR")"
|
||||
echo "DHCP: subnet=$DHCP_SUBNET mask=$DHCP_NETMASK range=$DHCP_RANGE_FIRST..$DHCP_RANGE_LAST"
|
||||
echo "NAT-сети: $NAT_NETS"
|
||||
|
||||
echo "=== Настройка HQ-RTR ==="
|
||||
|
||||
# --- 1. Имя хоста ---
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ fi
|
|||
HOSTNAME_FQDN="hq-srv.au-team.irpo" # таблица 3, запись hq-srv.au-team.irpo
|
||||
|
||||
# --- Сеть ---
|
||||
SRV_IF="" # интерфейс к HQ-SW (access-порт VLAN 100; на HQ-SRV тег не ставится)
|
||||
SRV_IF="enp0s3" # 1-й NIC — к HQ-SW (VLAN 100; тег снимает HQ-SW или сетевой адаптер)
|
||||
SRV_ADDR="" # адрес HQ-SRV в VLAN 100, формат адрес/префикс
|
||||
SRV_GW="" # шлюз — адрес HQ-RTR в VLAN 100
|
||||
DNS_SRV="" # внешний DNS для самого сервера (необязательно, напр. 77.88.8.7)
|
||||
|
|
@ -39,8 +39,8 @@ DNS_SERVICE="dnsmasq"
|
|||
DNS_HOSTS_FILE="/etc/exam.hosts" # наши записи A/PTR, перезаписывается целиком
|
||||
DNS_EXTRA_CONF="/etc/dnsmasq.d/exam.conf"
|
||||
DNS_DOMAIN="au-team.irpo"
|
||||
DNS_UPSTREAM="" # forwarder по заданию: любой общий DNS (77.88.8.7 / 77.88.8.3 / др.)
|
||||
DNS_LISTEN="" # адрес, на котором слушать DNS (адрес HQ-SRV в VLAN 100)
|
||||
DNS_UPSTREAM="77.88.8.7" # forwarder: любой общий DNS по заданию (можно 77.88.8.3 и др.)
|
||||
# Адрес, на котором слушать DNS (DNS_LISTEN), вычисляется из SRV_ADDR
|
||||
|
||||
# --- Адреса для записей таблицы 3 (все без префикса) ---
|
||||
HQ_RTR_IP="" # hq-rtr.au-team.irpo
|
||||
|
|
@ -58,7 +58,7 @@ NM_CONF_DIR="/etc/NetworkManager/system-connections"
|
|||
# ============ Проверка заполнения переменных ============
|
||||
MISSING=()
|
||||
for NAME in HOSTNAME_FQDN SRV_IF SRV_ADDR SRV_GW SSH_USER SSH_USER_PASS SSH_USER_UID \
|
||||
SSH_PORT DNS_UPSTREAM DNS_LISTEN HQ_RTR_IP BR_RTR_IP BR_FW_IP HQ_CLI_IP \
|
||||
SSH_PORT DNS_UPSTREAM HQ_RTR_IP BR_RTR_IP BR_FW_IP HQ_CLI_IP \
|
||||
BR_SRV_IP ISP_TO_HQ_IP ISP_TO_BR_IP EXAM_TZ; do
|
||||
[[ -z "${!NAME}" ]] && MISSING+=("$NAME")
|
||||
done
|
||||
|
|
@ -66,8 +66,9 @@ if [[ ${#MISSING[@]} -gt 0 ]]; then
|
|||
echo "Заполните переменные в начале скрипта: ${MISSING[*]}"
|
||||
exit 1
|
||||
fi
|
||||
# Адрес HQ-SRV без префикса — для записи A/PTR на себя
|
||||
# Адрес HQ-SRV без префикса — для записей A/PTR и listening DNS
|
||||
SRV_ADDR_HOST="${SRV_ADDR%/*}"
|
||||
DNS_LISTEN="$SRV_ADDR_HOST"
|
||||
|
||||
echo "=== Настройка HQ-SRV ==="
|
||||
|
||||
|
|
|
|||
|
|
@ -17,16 +17,12 @@ HOSTNAME_FQDN=""
|
|||
|
||||
# Администрирование ниже настраивается без запросов — только переменные.
|
||||
|
||||
WAN_IF="" # интерфейс к провайдеру (пример: enp0s3), получит адрес по DHCP
|
||||
HQ_IF="" # интерфейс в сторону HQ-RTR
|
||||
HQ_NET="" # адрес ISP на этом интерфейсе, формат адрес/префикс
|
||||
# (по заданию сеть 172.16.1.0/28 — вписать свой адрес/префикс)
|
||||
BR_IF="" # интерфейс в сторону BR-RTR
|
||||
BR_NET="" # адрес ISP здесь, формат адрес/префикс
|
||||
# (по заданию сеть 172.16.2.0/28)
|
||||
|
||||
DNS_ISP="" # внешний DNS-сервер, если DHCP провайдера его не выдаёт
|
||||
# (необязательно, например 77.88.8.7)
|
||||
WAN_IF="enp0s3" # 1-й NIC = выход в Интернет (DHCP). Если порядок иной — поменять
|
||||
HQ_IF="enp0s8" # 2-й NIC — в сторону HQ-RTR
|
||||
HQ_NET="172.16.1.1/28" # адрес ISP на этом линке (сеть по заданию 172.16.1.0/28, .1 = ISP)
|
||||
BR_IF="enp0s9" # 3-й NIC — в сторону BR-RTR
|
||||
BR_NET="172.16.2.1/28" # (сеть по заданию 172.16.2.0/28, .1 = ISP)
|
||||
DNS_ISP="77.88.8.7" # внешний DNS, если DHCP провайдера его не выдаёт (можно заменить)
|
||||
|
||||
# Часовой пояс — поставьте пояс места проведения экзамена
|
||||
EXAM_TZ="Europe/Moscow" # проверить на экзамене
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ if [[ $EUID -ne 0 ]]; then
|
|||
fi
|
||||
|
||||
# ================= ПЕРЕМЕННЫЕ (заполните перед запуском) =================
|
||||
ISP_IF="" # интерфейс в сторону ISP (куда входят подключения извне)
|
||||
ISP_IF="enp0s3" # 1-й NIC — к ISP (куда идут подключения извне)
|
||||
BR_SRV_IP="" # адрес BR-SRV (без префикса)
|
||||
TESTAPP_PORT="8080" # порт testapp на BR-SRV по заданию
|
||||
SSH_PORT="2027" # порт SSH на BR-SRV по заданию
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ if [[ $EUID -ne 0 ]]; then
|
|||
fi
|
||||
|
||||
# ================= ПЕРЕМЕННЫЕ (заполните перед запуском) =================
|
||||
ISP_IF="" # интерфейс в сторону ISP (куда входят подключения извне)
|
||||
ISP_IF="enp0s3" # 1-й NIC — к ISP (куда идут подключения извне)
|
||||
HQ_SRV_IP="" # адрес HQ-SRV в VLAN 100 (без префикса)
|
||||
WEB_APP_PORT="80" # порт, где слушает веб-приложение (apache) на HQ-SRV
|
||||
SSH_PORT="2027" # порт SSH на HQ-SRV по заданию
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@ EXAM_TZ="Europe/Moscow" # проверить на экзамене
|
|||
ISO_DIR="/mnt/iso" # точка монтирования Additional.iso
|
||||
|
||||
# --- 2. RAID0 ---
|
||||
RAID_DEV1="" # первый диск 1 ГБ (пример: /dev/vdb)
|
||||
RAID_DEV2="" # второй диск 1 ГБ (пример: /dev/vdc)
|
||||
RAID_DEV1="" # пусто = автоопределение: два диска до ~1.3 ГБ (не системный)
|
||||
RAID_DEV2="" # можно задать вручную (пример: /dev/vdb, /dev/vdc)
|
||||
RAID_NAME="md0" # имя устройства по заданию
|
||||
MDADM_CONF="/etc/mdadm.conf" # по заданию; ПРОВЕРИТЬ имя файла на РЕД ОС 8
|
||||
RAID_MOUNT="/raid"
|
||||
|
|
@ -53,7 +53,7 @@ APACHE_EXTERNAL_PORT="80" # порт apache по заданию (нару
|
|||
|
||||
# ============ Проверка заполнения переменных ============
|
||||
MISSING=()
|
||||
for NAME in RAID_DEV1 RAID_DEV2 NFS_NET NTP_SERVER EXAM_TZ; do
|
||||
for NAME in NFS_NET NTP_SERVER EXAM_TZ; do
|
||||
[[ -z "${!NAME}" ]] && MISSING+=("$NAME")
|
||||
done
|
||||
if [[ ${#MISSING[@]} -gt 0 ]]; then
|
||||
|
|
@ -65,6 +65,20 @@ echo "=== Настройка HQ-SRV, задание 2 ==="
|
|||
|
||||
# --- 1. RAID0 (md0) из двух дисков ---
|
||||
echo "--- RAID0 (mdadm) ---"
|
||||
# Автоопределение двух дисков ~1 ГБ (небольшие блочные устройства; системный
|
||||
# диск всегда больше, поэтому фильтр по размеру до 1.3 ГБ безопасен)
|
||||
if [[ -z "$RAID_DEV1" || -z "$RAID_DEV2" ]]; then
|
||||
mapfile -t _DISKS < <(lsblk -dn -o NAME,SIZE -b 2>/dev/null \
|
||||
| awk -v max=$((13*1024*1024*1024)) '$2<max {print "/dev/"$1}' | head -2) || true
|
||||
if [[ ${#_DISKS[@]} -eq 2 && -b "${_DISKS[0]}" && -b "${_DISKS[1]}" ]]; then
|
||||
RAID_DEV1="${_DISKS[0]}"; RAID_DEV2="${_DISKS[1]}"
|
||||
echo "Найдены диски 1 ГБ: $RAID_DEV1 $RAID_DEV2"
|
||||
else
|
||||
echo "Автоопределение не сработало — задайте RAID_DEV1/RAID_DEV2 вручную. Диски:"
|
||||
lsblk -dn -o NAME,SIZE,TYPE
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
dnf install -y mdadm || echo "ПРОВЕРИТЬ: пакет mdadm не установился"
|
||||
if mdadm --detail /dev/$RAID_NAME >/dev/null 2>&1; then
|
||||
echo "Массив /dev/$RAID_NAME уже существует"
|
||||
|
|
|
|||
|
|
@ -24,9 +24,7 @@ ISO_UPSTREAM="ru.pool.ntp.org" # вышестоящий NTP-сервер (на
|
|||
# здесь имя, а не адрес — не адресация стенда)
|
||||
STRATUM="5" # стратум сервера по заданию
|
||||
|
||||
ALLOW_NETS="" # сети клиентов NTP, через пробел, адрес/префикс:
|
||||
# сеть к HQ-RTR (по заданию 172.16.1.0/28)
|
||||
# сеть к BR-RTR (по заданию 172.16.2.0/28)
|
||||
ALLOW_NETS="172.16.1.0/28 172.16.2.0/28" # сети линков к роутерам (по заданию)
|
||||
|
||||
EXAM_TZ="Europe/Moscow" # проверить на экзамене
|
||||
|
||||
|
|
|
|||
|
|
@ -26,8 +26,10 @@ PROXY_CONF="/etc/nginx/conf.d/exam-proxy.conf" # перезаписывает
|
|||
WEB_DOMAIN="web.au-team.irpo" # из таблицы 3
|
||||
DOCKER_DOMAIN="docker.au-team.irpo" # из таблицы 3
|
||||
|
||||
HQ_SRV_WEB="" # адрес:порт веб-приложения HQ-SRV, формат IP:порт (apache:80)
|
||||
BR_SRV_APP="" # адрес:порт testapp на BR-SRV, формат IP:порт (8080)
|
||||
HQ_SRV_IP="" # адрес HQ-SRV (порт apache — по заданию 80, переменная ниже)
|
||||
BR_SRV_IP="" # адрес BR-SRV (порт testapp — по заданию 8080, переменная ниже)
|
||||
WEB_PORT="80" # порт веб-приложения на HQ-SRV
|
||||
TESTAPP_PORT="8080" # порт testapp на BR-SRV
|
||||
|
||||
WEB_LOGIN="WEB" # логин web-аутентификации по заданию
|
||||
WEB_PASS="P@ssw0rd" # пароль web-аутентификации по заданию
|
||||
|
|
@ -41,7 +43,7 @@ EXAM_TZ="Europe/Moscow" # проверить на экзамене
|
|||
|
||||
# ============ Проверка заполнения переменных ============
|
||||
MISSING=()
|
||||
for NAME in HQ_SRV_WEB BR_SRV_APP EXAM_TZ; do
|
||||
for NAME in HQ_SRV_IP BR_SRV_IP EXAM_TZ; do
|
||||
[[ -z "${!NAME}" ]] && MISSING+=("$NAME")
|
||||
done
|
||||
if [[ ${#MISSING[@]} -gt 0 ]]; then
|
||||
|
|
@ -82,7 +84,7 @@ server {
|
|||
auth_basic "Authorized access only";
|
||||
auth_basic_user_file $HTPASSWD_FILE;
|
||||
location / {
|
||||
proxy_pass http://$HQ_SRV_WEB;
|
||||
proxy_pass http://$HQ_SRV_IP:$WEB_PORT;
|
||||
proxy_set_header Host \$host;
|
||||
}
|
||||
}
|
||||
|
|
@ -99,7 +101,7 @@ server {
|
|||
ssl_certificate $TLS_CERT_FILE;
|
||||
ssl_certificate_key $TLS_KEY_FILE;
|
||||
location / {
|
||||
proxy_pass http://$BR_SRV_APP;
|
||||
proxy_pass http://$BR_SRV_IP:$TESTAPP_PORT;
|
||||
proxy_set_header Host \$host;
|
||||
}
|
||||
}
|
||||
|
|
@ -114,7 +116,7 @@ server {
|
|||
auth_basic "Authorized access only";
|
||||
auth_basic_user_file $HTPASSWD_FILE;
|
||||
location / {
|
||||
proxy_pass http://$HQ_SRV_WEB;
|
||||
proxy_pass http://$HQ_SRV_IP:$WEB_PORT;
|
||||
proxy_set_header Host \$host;
|
||||
}
|
||||
}
|
||||
|
|
@ -123,7 +125,7 @@ server {
|
|||
listen 80;
|
||||
server_name $DOCKER_DOMAIN;
|
||||
location / {
|
||||
proxy_pass http://$BR_SRV_APP;
|
||||
proxy_pass http://$BR_SRV_IP:$TESTAPP_PORT;
|
||||
proxy_set_header Host \$host;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue