Модуль Б — Краткая инструкция
1. Таблица замены @@псевдонимов@@
Скопируйте таблицу в блокнот. Заполните колонку «Ваше значение» по листу задания. Затем Ctrl+H → «Заменить всё» для каждого @@…@@.
Порядок замены: сначала @@DOMAIN@@, потом все остальные.
| Псевдоним |
Образец (заданиеb.txt) |
Ваше значение |
Пункт |
Примечание |
@@DOMAIN@@ |
au-team.irpo |
|
п.1,9–11 |
Можно оставить |
@@DOMAIN_REALM@@ |
AU-TEAM.IRPO |
|
п.1 |
Можно оставить |
@@DOMAIN_NETBIOS@@ |
AU-TEAM |
|
п.1 |
Можно оставить |
@@ADMIN_PASS@@ |
P@ssw0rd |
|
п.1 |
Пароль администратора DC |
@@USER_PREFIX@@ |
hquser |
|
п.1 |
Префикс + номер |
@@USER_COUNT@@ |
5 |
|
п.1 |
Число пользователей |
@@USER_PASS@@ |
P@ssw0rd |
|
п.1 |
Пароль пользователей |
@@GROUP_HQ@@ |
hq |
|
п.1 |
Группа |
@@RAID_MOUNT@@ |
/raid |
|
п.2–3 |
Точка монтирования RAID |
@@NFS_SERVER_PATH@@ |
/raid/nfs |
|
п.3 |
Полный путь NFS-шары |
@@NFS_CLIENT@@ |
/mnt/nfs |
|
п.3 |
Точка монтирования на HQ-CLI |
@@STRATUM@@ |
5 |
|
п.4 |
stratum на ISP |
@@DB_NAME@@ |
webdb |
|
п.7 |
Имя БД LAMP |
@@DB_USER@@ |
webc |
|
п.7 |
Пользователь БД |
@@DB_PASS@@ |
P@ssw0rd |
|
п.7 |
Пароль БД |
@@PORT_HQ_WEB_EXT@@ |
8080 |
|
п.8–9 |
Внешний порт на HQ-RTR |
@@PORT_HQ_WEB_INT@@ |
80 |
|
п.7–8 |
Внутренний порт HQ-SRV (Apache) |
@@PORT_BR_APP_EXT@@ |
8080 |
|
п.8–9 |
Внешний порт на BR-RTR |
@@PORT_BR_APP_INT@@ |
8080 |
|
п.6,8 |
Внешний порт Docker (DNAT to) |
@@PORT_SSH_HQ_EXT@@ |
2026 |
|
п.8 |
Внешний порт SSH на HQ-RTR |
@@PORT_SSH_BR_EXT@@ |
2026 |
|
п.8 |
Внешний порт SSH на BR-RTR |
@@HTTP_USER@@ |
WEB |
|
п.10 |
HTTP basic auth |
@@HTTP_PASS@@ |
P@ssw0rd |
|
п.10 |
HTTP basic auth |
@@DOCKER_APP_CONTAINER@@ |
testapp |
|
п.6 |
Имя контейнера |
@@DOCKER_DB_CONTAINER@@ |
db |
|
п.6 |
Имя контейнера БД |
@@DOCKER_MARIA_DB@@ |
mariadb |
|
п.6 |
MARIADB_DATABASE |
@@DOCKER_MARIA_USER@@ |
maria |
|
п.6 |
MARIADB_USER |
@@DOCKER_MARIA_PASS@@ |
P@ssw0rd |
|
п.6 |
MARIADB_PASSWORD |
Инварианты (что НЕ меняют):
- IP-адресация,
sshd на 2026, учётные данные Ansible, имена образов Docker, имена пакетов, топология.
- Устройство RAID:
md0, ФС ext4. Меняются: уровень, диски, точка монтирования.
- Внутренний порт SSH — всегда
2026.
2. Список ВМ и что настраивается
| ВМ |
IP |
Пункты |
Что делаем |
| BR-SRV |
192.168.3.10 |
1, 4, 5, 6 |
Samba DC, chrony-клиент, Ansible инвентарь, Docker |
| HQ-SRV |
192.168.1.10 |
2, 3, 4, 7 |
RAID, NFS-сервер, chrony-клиент, LAMP (Apache+MariaDB) |
| ISP |
172.16.1.1 / 172.16.2.1 |
4, 9, 10 |
chrony-сервер (stratum), nginx reverse proxy, basic auth |
| HQ-RTR |
172.16.1.10 / 192.168.1.1 |
4, 8 |
chrony-клиент, nftables DNAT, sshd |
| BR-RTR |
172.16.2.10 / 192.168.3.1 |
4, 8 |
chrony-клиент, nftables DNAT, sshd |
| HQ-CLI |
192.168.2.10 |
1, 3, 4, 9, 11 |
Домен, NFS-клиент, chrony-клиент, /etc/hosts, Яндекс Браузер, sshd |
ISO: BR-SRV — sr0, HQ-SRV — sr1.
Порядок: BR-SRV(п.1) → HQ-SRV(п.2–4,7) → ISP(п.4,9,10) → BR-SRV(п.4–6) → HQ-RTR + BR-RTR(п.4,8) → HQ-CLI(п.1,3,4,9,11) → BR-SRV(ansible ping).
3. Команды
3.1. BR-SRV — Samba DC (п.1)
# Установка
apt-get update
apt-get install -y task-samba-dc
# Очистка и подготовка
rm -f /etc/samba/smb.conf
rm -rf /var/lib/samba /var/cache/samba
mkdir -p /var/lib/samba/sysvol
# Provision домена [ИЗМ: realm, domain, adminpass]
samba-tool domain provision --realm=@@DOMAIN_REALM@@ --domain=@@DOMAIN_NETBIOS@@ --server-role=dc --dns-backend=SAMBA_INTERNAL --adminpass='@@ADMIN_PASS@@' --use-rfc2307 --host-name=BR-SRV --host-ip=192.168.3.10
rm -f /etc/krb5.conf
cp -f /var/lib/samba/private/krb5.conf /etc/krb5.conf
systemctl enable --now samba
# Группа и пользователи [ИЗМ: префикс, количество, пароль]
samba-tool group add @@GROUP_HQ@@
for i in $(seq 1 @@USER_COUNT@@); do
samba-tool user add "@@USER_PREFIX@@$i" '@@USER_PASS@@'
samba-tool group addmembers @@GROUP_HQ@@ "@@USER_PREFIX@@$i"
done
# DNS на DC
mkdir -p /etc/net/ifaces/enp7s1
cat > /etc/net/ifaces/enp7s1/resolv.conf <<'EOF'
nameserver 127.0.0.1
search @@DOMAIN@@
EOF
systemctl restart network
samba-tool domain info 127.0.0.1
3.2. HQ-SRV — RAID, NFS, chrony, LAMP (п.2, 3, 4, 7)
lsblk -d -o NAME,SIZE,TYPE | grep disk # проверить диски
# --- п.2 RAID [ИЗМ: уровень и диски] ---
# ⚠ Выберите ОДНУ строку по заданию:
# RAID 0: mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc --run
# RAID 1: mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --run
# RAID 5: mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd --run
# RAID 10: mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde --run
# После создания — общие шаги:
mdadm --detail /dev/md0
mdadm --detail --scan | tee -a /etc/mdadm.conf
mkfs.ext4 /dev/md0
mkdir -p @@RAID_MOUNT@@
grep -q '/dev/md0' /etc/fstab || echo '/dev/md0 @@RAID_MOUNT@@ ext4 defaults 0 0' >> /etc/fstab
mount -av
df -h @@RAID_MOUNT@@
# --- п.3 NFS ---
apt-get install -y nfs-server nfs-utils
mkdir -p @@NFS_SERVER_PATH@@
chmod 777 @@NFS_SERVER_PATH@@
echo '@@NFS_SERVER_PATH@@ 192.168.2.0/24(rw,no_root_squash)' >> /etc/exports
exportfs -rav
systemctl enable --now nfs-server
# --- п.4 chrony (клиент ISP) ---
grep -q 'server 172.16.1.1' /etc/chrony.conf || {
sed -i 's/^pool /# pool /; s/^server /# server /' /etc/chrony.conf
echo 'server 172.16.1.1 iburst' >> /etc/chrony.conf
}
systemctl enable --now chronyd
systemctl restart chronyd
# --- п.7 LAMP (ISO sr1) ---
mount /dev/sr1 /mnt
apt-get install -y lamp-server
systemctl enable --now mariadb
mariadb -u root <<'SQL'
CREATE DATABASE IF NOT EXISTS @@DB_NAME@@;
CREATE USER IF NOT EXISTS '@@DB_USER@@'@'localhost' IDENTIFIED BY '@@DB_PASS@@';
GRANT ALL PRIVILEGES ON @@DB_NAME@@.* TO '@@DB_USER@@'@'localhost';
FLUSH PRIVILEGES;
SQL
cp -f /mnt/web/index.php /var/www/html/
cp -rf /mnt/web/logo.png /var/www/html/
mariadb -u @@DB_USER@@ -p'@@DB_PASS@@' @@DB_NAME@@ < /mnt/web/dump.sql
#Вручную поправить параметры подключения в index.php ( $username, $password и $dbname)
nano /var/www/html/index.php
systemctl enable --now httpd2
3.3. ISP — NTP-сервер, nginx (п.4, 9, 10)
apt-get update
apt-get install -y chrony nginx apache2
# п.4 — сервер времени [ИЗМ: stratum]
echo 'local stratum @@STRATUM@@' >> /etc/chrony.conf
echo 'allow 172.16.0.0/12' >> /etc/chrony.conf
echo 'allow 192.168.0.0/16' >> /etc/chrony.conf
systemctl enable --now chronyd
systemctl restart chronyd
# п.10 — basic auth [ИЗМ: логин/пароль]
htpasswd -cb /etc/nginx/.htpasswd @@HTTP_USER@@ '@@HTTP_PASS@@'
# п.9–10 — reverse proxy [ИЗМ: порты]
cat > /etc/nginx/sites-available.d/default.conf <<'EOF'
server {
listen 80;
server_name web.@@DOMAIN@@;
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://172.16.1.10:@@PORT_HQ_WEB_EXT@@;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name docker.@@DOMAIN@@;
location / {
proxy_pass http://172.16.2.10:@@PORT_BR_APP_EXT@@;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
ln -sf /etc/nginx/sites-available.d/default.conf /etc/nginx/sites-enabled.d/default.conf
nginx -t
systemctl enable --now nginx
systemctl restart nginx
3.4. BR-SRV — chrony, Ansible, Docker (п.4, 5, 6)
# п.4 chrony
grep -q 'server 172.16.2.1' /etc/chrony.conf || {
sed -i 's/^pool /# pool /; s/^server /# server /' /etc/chrony.conf
echo 'server 172.16.2.1 iburst' >> /etc/chrony.conf
}
systemctl restart chronyd
# п.5 Ansible
apt-get install -y ansible sshpass
mkdir -p /etc/ansible
cat > /etc/ansible/ansible.cfg <<'EOF'
[defaults]
inventory = /etc/ansible/hosts
host_key_checking = False
EOF
cat > /etc/ansible/hosts <<'EOF'
[exam]
HQ-SRV ansible_host=192.168.1.10 ansible_user=sshuser ansible_password=P@ssw0rd ansible_port=2026
HQ-CLI ansible_host=192.168.2.10 ansible_user=user ansible_password=resu
HQ-RTR ansible_host=192.168.1.1 ansible_user=net_admin ansible_password=P@ssw0rd
BR-RTR ansible_host=192.168.3.1 ansible_user=net_admin ansible_password=P@ssw0rd
EOF
# п.6 Docker (ISO sr0)
apt-get install -y docker-engine docker-compose-v2
systemctl enable --now docker
mount /dev/sr0 /mnt
docker load < /mnt/docker/mariadb_latest.tar
docker load < /mnt/docker/site_latest.tar
mkdir -p /opt/testapp
cat > /opt/testapp/compose.yaml <<'EOF'
services:
@@DOCKER_DB_CONTAINER@@:
container_name: @@DOCKER_DB_CONTAINER@@
image: mariadb:latest
restart: always
ports:
- "3306:3306"
environment:
MARIADB_DATABASE: @@DOCKER_MARIA_DB@@
MARIADB_USER: @@DOCKER_MARIA_USER@@
MARIADB_PASSWORD: @@DOCKER_MARIA_PASS@@
MARIADB_ROOT_PASSWORD: @@DOCKER_MARIA_PASS@@
@@DOCKER_APP_CONTAINER@@:
container_name: @@DOCKER_APP_CONTAINER@@
image: site:latest
restart: always
ports:
- "@@PORT_BR_APP_INT@@:8000"
environment:
DB_TYPE: maria
DB_HOST: "192.168.3.10"
DB_PORT: "3306"
DB_NAME: @@DOCKER_MARIA_DB@@
DB_USER: @@DOCKER_MARIA_USER@@
DB_PASS: @@DOCKER_MARIA_PASS@@
depends_on:
- @@DOCKER_DB_CONTAINER@@
EOF
cd /opt/testapp && docker compose up -d
docker compose ps
3.5. HQ-RTR — chrony, nftables DNAT (п.4*, 8)
# SSH для Ansible (только автозагрузка)
systemctl enable --now sshd
# chrony
grep -q 'server 172.16.1.1' /etc/chrony.conf || {
sed -i 's/^pool /# pool /; s/^server /# server /' /etc/chrony.conf
echo 'server 172.16.1.1 iburst' >> /etc/chrony.conf
}
systemctl restart chronyd
# nftables DNAT [ИЗМ: порты]
cat > /etc/nftables/nftables.nft <<'EOF'
#!/usr/sbin/nft -f
flush ruleset
table ip nat {
chain prerouting {
type nat hook prerouting priority dstnat; policy accept;
iifname "enp7s1" tcp dport @@PORT_HQ_WEB_EXT@@ dnat to 192.168.1.10:@@PORT_HQ_WEB_INT@@
iifname "enp7s1" tcp dport @@PORT_SSH_HQ_EXT@@ dnat to 192.168.1.10:2026
}
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
oifname "enp7s1" masquerade
}
}
EOF
nft -f /etc/nftables/nftables.nft
systemctl enable --now nftables
3.6. BR-RTR — chrony, nftables DNAT (п.4*, 8)
# SSH для Ansible (только автозагрузка)
systemctl enable --now sshd
# chrony
grep -q 'server 172.16.2.1' /etc/chrony.conf || {
sed -i 's/^pool /# pool /; s/^server /# server /' /etc/chrony.conf
echo 'server 172.16.2.1 iburst' >> /etc/chrony.conf
}
systemctl restart chronyd
# nftables DNAT [ИЗМ: порты]
cat > /etc/nftables/nftables.nft <<'EOF'
#!/usr/sbin/nft -f
flush ruleset
table ip nat {
chain prerouting {
type nat hook prerouting priority dstnat; policy accept;
iifname "enp7s1" tcp dport @@PORT_BR_APP_EXT@@ dnat to 192.168.3.10:@@PORT_BR_APP_INT@@
iifname "enp7s1" tcp dport @@PORT_SSH_BR_EXT@@ dnat to 192.168.3.10:2026
}
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
oifname "enp7s1" masquerade
}
}
EOF
nft -f /etc/nftables/nftables.nft
systemctl enable --now nftables
3.7. HQ-CLI — домен, NFS, chrony, хостс, браузер (п.1, 3, 4, 9, 11)
# SSH для Ansible
systemctl enable --now sshd
# --- п.4 chrony ---
apt-get update
grep -q 'server 172.16.1.1' /etc/chrony.conf || {
sed -i 's/^pool /# pool /; s/^server /# server /' /etc/chrony.conf
echo 'server 172.16.1.1 iburst' >> /etc/chrony.conf
}
systemctl enable --now chronyd
systemctl restart chronyd
# --- п.1 Ввод в домен ---
#DNS — изменить свойства подключения на Автоматически (только адрес), и задать DNS 192.168.3.10
#перезапусить соединение через трей
#войти в домен через Центр упраления системой, Аунтентификация, домен active directory/samba
#перезагрузиться
# Sudo для группы
control libnss-role
roleadd @@GROUP_HQ@@ wheel
cat > /etc/sudoers.d/@@GROUP_HQ@@ <<'EOF'
Cmnd_Alias SHELLCMD = /bin/cat, /bin/grep, /usr/bin/id
WHEEL_USERS ALL=(ALL:ALL) SHELLCMD
EOF
chmod 400 /etc/sudoers.d/@@GROUP_HQ@@
visudo -c
# --- п.3 NFS-клиент ---
apt-get install -y nfs-utils nfs-clients
mkdir -p @@NFS_CLIENT@@
chmod 777 @@NFS_CLIENT@@
echo '192.168.1.10:@@NFS_SERVER_PATH@@ @@NFS_CLIENT@@ nfs defaults 0 0' >> /etc/fstab
mount -av
touch @@NFS_CLIENT@@/test_$(hostname)
# --- п.9 /etc/hosts (IP ISP с внутренней стороны) ---
grep -q 'web.@@DOMAIN@@' /etc/hosts ||
echo "172.16.1.1 web.@@DOMAIN@@ docker.@@DOMAIN@@" >> /etc/hosts
# --- п.11 Яндекс Браузер ---
apt-get install -y yandex-browser-stable
4. Дополнительная информация
4.1. Фиксированная адресация
| ВМ |
IP |
Примечание |
| BR-SRV |
192.168.3.10 |
Samba DC, Docker |
| HQ-SRV |
192.168.1.10 |
RAID, NFS, LAMP |
| HQ-CLI |
192.168.2.10 |
Клиент, домен, NFS |
| HQ-RTR |
172.16.1.10 (к ISP), 192.168.1.1 (LAN) |
DNAT, nginx upstream |
| BR-RTR |
172.16.2.10 (к ISP), 192.168.3.1 (LAN) |
DNAT, nginx upstream |
| ISP |
172.16.1.1 (→ HQ), 172.16.2.1 (→ BR) |
NTP-сервер, nginx |
| Сеть |
Префикс |
Где |
| HQ (серверы) |
192.168.1.0/24 |
HQ-SRV, шлюз 192.168.1.1 |
| HQ-CLI |
192.168.2.0/24 |
NFS |
| BR |
192.168.3.0/24 |
BR-SRV, шлюз 192.168.3.1 |
| ISP ↔ HQ-RTR |
172.16.1.0/28 |
chrony, DNAT |
| ISP ↔ BR-RTR |
172.16.2.0/28 |
chrony, DNAT |
4.2. Сводка портов и пробросов
| Узел |
Служба |
Порт |
Примечание |
| HQ-SRV |
HTTP |
@@PORT_HQ_WEB_INT@@ |
Apache LAMP; внутренний конец DNAT |
| HQ-SRV |
SSH |
2026 |
Фиксировано; DNAT с HQ-RTR |
| BR-SRV |
Docker |
@@PORT_BR_APP_INT@@ |
compose + DNAT |
| BR-SRV |
SSH |
2026 |
Фиксировано; DNAT с BR-RTR |
| HQ-RTR |
DNAT веб |
@@PORT_HQ_WEB_EXT@@ → .10:@@PORT_HQ_WEB_INT@@ |
nftables + proxy_pass |
| BR-RTR |
DNAT app |
@@PORT_BR_APP_EXT@@ → .10:@@PORT_BR_APP_INT@@ |
nftables + proxy_pass |
| ISP |
nginx |
80 |
Клиент; upstream — порты роутеров |
4.3. Проброс портов — цепочка
Сверяйте три звена (внешний порт на роутере → внутренний порт сервера → proxy_pass на ISP):
| Направление |
Внешний (роутер) |
Внутренний (сервер) |
proxy_pass на ISP |
| HQ-SRV веб |
@@PORT_HQ_WEB_EXT@@ |
@@PORT_HQ_WEB_INT@@ |
http://172.16.1.10:@@PORT_HQ_WEB_EXT@@ |
| BR-SRV app |
@@PORT_BR_APP_EXT@@ |
@@PORT_BR_APP_INT@@ |
http://172.16.2.10:@@PORT_BR_APP_EXT@@ |
| HQ-SRV SSH |
@@PORT_SSH_HQ_EXT@@ |
2026 (фикс.) |
— |
| BR-SRV SSH |
@@PORT_SSH_BR_EXT@@ |
2026 (фикс.) |
— |
4.4. RAID — варианты по заданию
| Уровень |
Мин. дисков |
Команда |
| 0 (stripe) |
2 |
--level=0 --raid-devices=2 /dev/sdb /dev/sdc |
| 1 (mirror) |
2 |
--level=1 --raid-devices=2 /dev/sdb /dev/sdc |
| 5 |
3 |
--level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd |
| 10 |
4 |
--level=10 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde |
4.5. Типичные ошибки
| Ошибка |
Решение |
| RAID не создаётся |
lsblk проверить диски; для RAID5 нужно 3+ |
| NFS не монтируется |
Сначала @@RAID_MOUNT@@, затем @@NFS_SERVER_PATH@@; HQ-CLI в конце |
| DNS пропал после reboot |
/etc/net/ifaces/enp7s1/resolv.conf, не /etc/resolv.conf |
| Сайты не открываются |
IP ISP в /etc/hosts — с ip addr на WAN, не хардкодить |
| Docker |
docker load; порт @@PORT_BR_APP_INT@@:8000; DB_HOST="192.168.3.10" |
| NAT / сайты |
nftables на роутерах; порты везде согласованы |
ansible ping failed |
На HQ-CLI, HQ-RTR, BR-RTR: systemctl enable --now sshd |
| ISO |
HQ-SRV — sr1, BR-SRV — sr0 |
5. Список команд для отчёта
Выполнять после завершения всей настройки. Копировать вывод в отчёт.
BR-SRV
# Samba DC
systemctl is-active samba
samba-tool domain info 127.0.0.1
samba-tool group listmembers @@GROUP_HQ@@
# chrony
chronyc tracking
# Ansible
cat /etc/ansible/hosts
ansible exam -m ping
# Docker
docker compose -f /opt/testapp/compose.yaml ps
HQ-SRV
# RAID
cat /proc/mdstat
mdadm --detail /dev/md0
df -h @@RAID_MOUNT@@
# NFS
systemctl is-active nfs-server
exportfs -v
# chrony
chronyc tracking
# LAMP
systemctl is-active httpd2
systemctl is-active mariadb
# БД
mariadb -u root -e "SHOW DATABASES;" | grep @@DB_NAME@@
mariadb -u root -e "SELECT User,Host FROM mysql.user WHERE User='@@DB_USER@@';"
ISP
# chrony
grep -E '^(local|allow)' /etc/chrony.conf | grep -v '^#'
chronyc tracking
# nginx
systemctl is-active nginx
nginx -t
cat /etc/nginx/sites-available.d/default.conf
ls -la /etc/nginx/.htpasswd
HQ-RTR
systemctl is-active chronyd
systemctl is-active nftables
nft list ruleset
systemctl is-active sshd
BR-RTR
systemctl is-active chronyd
systemctl is-active nftables
nft list ruleset
systemctl is-active sshd
HQ-CLI
# Домен
realm list
net ads info
# chrony
chronyc tracking
# NFS
df -h @@NFS_CLIENT@@
ls @@NFS_CLIENT@@/test_*
# /etc/hosts
grep -E 'web.|docker.' /etc/hosts
# Браузер
rpm -qa | grep yandex
# SSH
systemctl is-active sshd
Проверка сайтов через Яндекс Браузер (на HQ-CLI)
| Что |
Адрес |
Ожидание |
| Веб-приложение HQ-SRV напрямую |
http://192.168.1.10/ |
Открывается сайт |
| Веб-приложение через прокси (basic auth) |
http://web.@@DOMAIN@@ |
Запрос логина/пароля (@@HTTP_USER@@ / @@HTTP_PASS@@), затем сайт |
| Docker testapp через прокси |
http://docker.@@DOMAIN@@ |
Открывается testapp |
| Docker testapp напрямую |
http://192.168.3.10:@@PORT_BR_APP_INT@@ |
Открывается testapp |
Sudo test (от пользователя домена)
su -l @@USER_PREFIX@@1
sudo id # должно сработать
sudo cat /etc/passwd # должно сработать
sudo whoami # должно дать отказ
Интеграционные проверки
# NFS: запись с HQ-CLI → видно на HQ-SRV
# На HQ-CLI:
echo "verify_$(date +%s)" > @@NFS_CLIENT@@/verify.txt
# На HQ-SRV:
cat @@NFS_SERVER_PATH@@/verify.txt