Создать README.md
This commit is contained in:
parent
9f674a7340
commit
be087496a9
94
README.md
Normal file
94
README.md
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
# exam-net — скрипты подготовки к ДЭ 09.02.06 (Сетевое и системное администрирование)
|
||||
|
||||
Автоматизация настройки стенда по заданиям 1–3 (источник — `tasks.md`).
|
||||
Скрипты запускаются на соответствующих машинах (ISP, HQ-RTR, BR-RTR, BR-FW,
|
||||
HQ-SRV, BR-SRV, HQ-CLI), все решения по адресации вынесены в переменные
|
||||
в начале каждого скрипта.
|
||||
|
||||
Структура:
|
||||
```
|
||||
tools/subnet-calc.sh калькулятор подсетей (python3)
|
||||
zadanie1/ скрипты задания 1 (сетевая инфраструктура)
|
||||
zadanie2/ скрипты задания 2 (администрирование ОС)
|
||||
zadanie3/ скрипты задания 3 (эксплуатация инфраструктуры)
|
||||
QUESTIONS.md что проверить на стенде (имена пакетов/служб и т.д.)
|
||||
MANUAL.md шаги, которые выполняются вручную
|
||||
```
|
||||
|
||||
## 1. Как скопировать репозиторий на машину
|
||||
|
||||
На любой Linux-машине стенда (РЕД ОС 8):
|
||||
```bash
|
||||
dnf install -y git # если git ещё нет
|
||||
git clone https://git.belmpk.ru/kioroglo2410/net.git
|
||||
cd net
|
||||
```
|
||||
|
||||
## 2. Калькулятор подсетей
|
||||
|
||||
```bash
|
||||
bash tools/subnet-calc.sh 172.16.0.0/16 hq_srv=32 hq_cli=16 mgmt=8 br_srv=16 br_link=2h tunnel=2h
|
||||
```
|
||||
|
||||
- Числа — это АДРЕСА (включая адрес сети и broadcast). Суффикс `h` — число хостов
|
||||
(`br_link=2h` → маска /30 для линка и туннеля).
|
||||
- Вывод: минимальный префикс, адрес сети, маска, первый/последний адрес хоста,
|
||||
broadcast — таблицей для отчёта и для заполнения переменных скриптов.
|
||||
|
||||
## 3. Порядок запуска скриптов
|
||||
|
||||
Задание 1:
|
||||
```
|
||||
isp.sh -> HQ-RTR -> BR-RTR -> BR-FW -> HQ-SRV -> BR-SRV -> HQ-CLI
|
||||
```
|
||||
|
||||
**Перед каждым запуском:**
|
||||
1. Откройте скрипт (`vim zadanie1/isp.sh`) — заполните блок «ПЕРЕМЕННЫЕ»
|
||||
в начале файла (адреса, интерфейсы, имена пакетов по заданиям).
|
||||
2. Скрипт сам проверит заполнение и перечислит пустые переменные.
|
||||
3. Запускайте от root: `sudo bash zadanie1/hq-rtr.sh` (или bash от root).
|
||||
4. Все скрипты можно запускать повторно — конфиги перезаписываются,
|
||||
строки не дублируются.
|
||||
|
||||
Порядок в заданиях 2 и 3 зависит от связей; ориентировочно:
|
||||
- задание 2: `br-srv.sh` (samba/policy) -> `hq-srv.sh` (RAID/NFS/web) ->
|
||||
`hq-cli.sh` (NFS/chrony) -> `isp.sh` (chrony-сервер) -> роутеры (DNAT).
|
||||
Перед этим вручную — ввод HQ-CLI в домен (MANUAL.md) и ssh-copy-id для ansible.
|
||||
- задание 3: `hq-srv.sh` (ЦС, atop, cups, fail2ban) -> доставка сертификатов
|
||||
(MANUAL.md) -> `isp.sh` (реверс-прокси, HTTPS после доставки cert) ->
|
||||
`hq-cli.sh` (доверие CA, принтер) -> `br-srv.sh` (import.sh, плейбук).
|
||||
|
||||
## 4. Какие переменные обязательны
|
||||
|
||||
Каждый скрипт в начале содержит блок переменных с комментариями. Пустые
|
||||
(`""`) при запуске приведут к сообщению «Заполните переменные...» и exit 1.
|
||||
Универсальные, которые заполняются на почти всех машинах:
|
||||
- `*_IF` — имя сетевого интерфейса (`ip -br link` чтобы посмотреть);
|
||||
- `*_ADDR`, `*_NET` — адреса из вашего расчёта (формат `адрес/префикс`);
|
||||
- `*_GW` — шлюзы (адреса соседних роутеров);
|
||||
- в задании 3 в `isp.sh` — `TLS_CERT_FILE`/`TLS_KEY_FILE` после доставки
|
||||
сертификатов (MANUAL.md).
|
||||
Порядок заполнения адресов: сначала `tools/subnet-calc.sh`, потом скрипты
|
||||
в порядке раздела 3.
|
||||
|
||||
## 5. Что собой представляет ручной шаг
|
||||
|
||||
Не всё автоматизируется честно (пароль админа домена, интерактивные установщики,
|
||||
GUI). Такие места помечены в скриптах `ДЕЛАЕТСЯ ВРУЧНУЮ` и подробно описаны
|
||||
в `MANUAL.md`. Порядок сохраняется вручную, а команды самопроверки — в конце
|
||||
каждого скрипта.
|
||||
|
||||
## 6. Проверка результата
|
||||
|
||||
- Каждый скрипт заканчивает блоком «=== Самопроверка ... ===» — там и в
|
||||
интерактиве печатаются команды проверки (ping, dig, chronyc, lpstat,
|
||||
fail2ban-client status, docker ps и т.д.).
|
||||
- `bash -n <скрипт>` — проверка синтаксиса правок, которую вы делаете
|
||||
при заполнении переменных.
|
||||
|
||||
## 7. Проверить частые неточности
|
||||
|
||||
- РЕД ОС 8: имена пакетов/служб могут отличаться от указанных по умолчанию
|
||||
(dnsmasq? frr? dhcp? nfs-utils?) — по пунктам смотри QUESTIONS.md;
|
||||
соответствующие значения вынесены в переменные.
|
||||
- Часовой пояс — везде переменная `EXAM_TZ`, поставь пояс места экзамена.
|
||||
Loading…
Reference in a new issue