diff --git a/README.md b/README.md index dda9eb1..f4fb6f5 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # laba - -## МОДУЛЬ 1 +##

МОДУЛЬ 1

Задание: Необходимо разработать и настроить инфраструктуру информационно коммуникационной системы согласно предложенной топологии (см. Рисунок 1). Задание включает базовую настройку устройств: @@ -11,60 +10,85 @@ В ходе проектирования и настройки сетевой инфраструктуры следует вести отчет о своих действиях, включая таблицы и схемы, предусмотренные в задании. Итоговый отчет должен содержать одну таблицу и пять отчетов о ходе работы. Итоговый отчет по окончании работы следует сохранить на диске рабочего места -![Схема топологии]() +

+ +

-![Таблица узлов]() +

+ +

- Чтобы зайти на стенд для 1 модуля. +

Чтобы зайти на стенд для 1 модуля.

- User name: m1 - Password: modul1 +

User name: m1

+

Password: modul1

- - Перед включением виртуалок Настроем вланы. По заданию HQ-SRV в 100 влане, а HQ-CLI в 200 - > **Примечание:** - > Основные сведения о настройке коммутатора и выбора реализации разделения на VLAN занесите в отчёт +Перед включением виртуалок Настроем вланы. По заданию HQ-SRV в 100 влане, а HQ-CLI в 200 +> **Примечание:** +> Основные сведения о настройке коммутатора и выбора реализации разделения на VLAN занесите в отчёт -![]() +

+ +

-![]() +

+ +

-![]() +

+ +

-![]() +

+ +

**ISP преднастроена, но включать ее надо** -![]() +

+ +

- ### Сетевая связность - между HQ и BRANCH +###

Сетевая связность - между HQ и BRANCH

> **Примечание:** > Сведения об адресах занесите в отчёт, в качестве примера используйте Таблицу 3 - *HQ-RTR* +

*HQ-RTR*

Задаём сразу FQDN - выбор имени домена произвольный: -![]() +

+ +

По такой же аналогии настройте остальные имена Чтобы настроить адресацию переходим: -![]() +

+ +

Заодно настроим GRE туннель -![]() +

+ +

-![]() +

+ +

Включаем пересылку пакетов между портами (интерфейсами) -![]() +

+ +

-![]() +

+ +

Применяем: @@ -72,13 +96,19 @@ Прокинем PAT так, как по приколу тачки, что подключены к роутеру пинговать инет не будут. -![]() +

+ +

-![]() +

+ +

Обязательно добавим в автозагрузку и активируем -![]() +

+ +

Туннель мы допустим подняли, но чтобы пакеты через него пошли, нужна маршрутизация. > **Примечание:** @@ -86,191 +116,278 @@ Установим frr. -![]() +

+ +

+ > **РЕКОМЕНДАЦИЯ:** > ПОКА FRR СКАЧИВАЕТСЯ ПЕРЕХОДИМ К НАСТРОЙКЕ BR-RTR В файле /etc/frr/daemons - включим поддержку OSPFv2 (IPv4) -![]() +

+ +

Не забываем перезапускать, чтобы изменения вступили в силу -![]() +

+ +

Переходим к настройке frr (ospf) -![]() +

+ +

Поставим пароль на frr -![]() +

+ +

Не забываем перезапустить -![]() +

+ +

И добавить в автозагрузку -![]() +

+ +

- *BR-RTR* +

*BR-RTR*

Произведем те же манипуляции -![]() +

+ +

-![]() +

+ +

-![]() +

+ +

-![]() +

+ +

-![]() +

+ +

-![]() +

+ +

-![]() +

+ +

-![]() +

+ +

-![]() +

+ +

> **РЕКОМЕНДАЦИЯ:** > ПОКА FRR СКАЧИВАЕТСЯ ДОДЕЛЫВАЕМ FRR НА HQ-RTR -![]() +

+ +

-![]() +

+ +

-![]() +

+ +

-![]() +

+ +

-![]() +

+ +

-![]() +

+ +

Ура сетевая связность у между hq и br настроена -Для проверки пингуем с br-rtr: +Для проверки пингуем с br-rtr: + ***ping 192.168.100.1*** > **РЕКОМЕНДАЦИЯ:** > сразу на HQ-RTR скачаем: apt update && apt install –y isc-dhcp-server - *HQ-SRV* +

*HQ-SRV*

Задаем имя: > **ВНИМАНИЕ:** > Нужно обновить изображение -![]() +

+ +

Прокинем инет: -![]() +

+ +

+ +Перезапускаем сервис: -Перезапускаем сервис: ***Systemctl restart networking*** Проверяем: -![]() +

+ +

- *BR-SRV* +

*BR-SRV*

-![]() +

+ +

-![]() +

+ +

+ +Перезапускаем сервис: -Перезапускаем сервис: ***Systemctl restart networking*** Проверяем: -![]() +

+ +

> **РЕКОМЕНДАЦИЯ:** > сразу скачиваем на HQ-SRV: apt update && apt install -y dnsmasq - ### Создание локальных учетных записей +###

Создание локальных учетных записей

+

Создайте пользователя sshuser на серверах

-- Создайте пользователя sshuser на серверах +

*HQ-SRV и BR-SRV*

- *HQ-SRV и BR-SRV* - -![]() +

+ +

Пользователь sshuser должен иметь возможность запускать sudo без дополнительной аутентификации. В дебиане нету судо поэтому скачаем: -![]() +

+ +

-![]() +

+ +

НА BR-SRV СДЕЛАЙТЕ ТОЖЕ САМОЕ -- Создайте пользователя net_admin на маршрутизаторах +

Создайте пользователя net_admin на маршрутизаторах

- *HQ-RTR и BR-RTR* +

*HQ-RTR и BR-RTR*

-![]() +

+ +

-![]() +

+ +

В дебиане нет sudo поэтому скачаем -![]() +

+ +

-![]() +

+ +

СДЕЛАЙТЕ ТОЖЕ САМОЕ НА BR-RTR - ### Настройка безопасного удаленного доступа на серверах HQ-SRV и BR-SRV: +###

Настройка безопасного удаленного доступа на серверах HQ-SRV и BR-SRV:

- Для подключения используйте порт 2024 - Разрешите подключения только пользователю sshuser ● Ограничьте количество попыток входа до двух - Настройте баннер «Authorized access only» - *HQ-SRV и BR-SRV* +

*HQ-SRV и BR-SRV*

-![]() +

+ +

Редактируем файл /etc/ssh/sshd_config: -![]() +

+ +

-![]() +

+ +

-![]() +

+ +

-![]() +

+ +

ДУБЛИРУЕМ ТОЖЕ САМОЕ НА BR-SRV - ### Установим и настроим DHCP-сервер +###

Установим и настроим DHCP-сервер

и зарезервируем адрес для HQ-SRV, чтобы потом на всех остальных оконечных устройствах задавая адреса сразу создавать пользователей - *HQ-RTR:* +

*HQ-RTR:*

-Скачаем: apt install –y isc-dhcp-server +Скачаем: ***apt install –y isc-dhcp-server*** Первым делом нам необходимо указать, что наш DHCP сервер должен принимать запросы только с ens20 интерфейса. -![]() +

+ +

-![]() +

+ +

Настройка протокола динамической конфигурации хостов. @@ -283,17 +400,23 @@ - DNS-суффикс для офисов HQ – au-team.irpo - Сведения о настройке протокола занесите в отчёт -![]() +

+ +

-![]() +

+ +

-![]() +

+ +

> **Примечание:** > Сведения о настройке протокола занесите в отчёт - ### Настройка DNS для офисов HQ и BR. +###

Настройка DNS для офисов HQ и BR.

- Основной DNS-сервер реализован на HQ-SRV. - Сервер должен обеспечивать разрешение имён в сетевые адреса устройств и обратно в соответствии с таблицей 2 @@ -301,59 +424,79 @@ Нам необходимо настроить DNS сервер. Будем использовать dnsmasq. - *HQ-SRV* +

*HQ-SRV*

-![]() +

+ +

-![]() +

+ +

-![]() +

+ +

Теперь открываем скрипт-инициализации сервиса dnsmasq -![]() +

+ +

ищем строчку DNSMASQ_OPTS -![]() +

+ +

Убираем оттуда –local-service -![]() +

+ +

+ +Перезагружаем службу dnsmasq: -Перезагружаем службу dnsmasq: ***systemctl restart dnsmasq*** -После настройки dns-сервера прописываем всем машинам в /etc/resolv.conf: -***ameserver 192.168.100.2*** +После настройки dns-сервера прописываем всем машинам в /etc/resolv.conf: -![]() +***nameserver 192.168.100.2*** + +

+ +

- ### Настройте часовой пояс на всех устройствах, согласно месту проведения экзамена. +###

Настройте часовой пояс на всех устройствах, согласно месту проведения экзамена.

- *HQ-SRV, HQ-CLI, BR-SRV* +

*HQ-SRV, HQ-CLI, BR-SRV*

+ +Проверяем какой часовой пояс установлен: -Проверяем какой часовой пояс установлен: ***timedatectl status*** -![]() +

+ +

+ +Если отличается, то устанавливаем: -Если отличается, то устанавливаем: ***timedatectl set-timezone Asia/Yekaterinburg*** -## МОДУЛЬ 2 +##

МОДУЛЬ 2

-Чтобы зайти на стенд для 1 модуля. +

Чтобы зайти на стенд для 2-3 модуля.

-User name: m2 -Password: modul2 - - **(СДЕЛАТЬ SNAPSHOT BR-SRV)** +

User name: m2

+

Password: modul2

-Настройте доменный контроллер Samba на машине BR-SRV. +###

1. Настройте доменный контроллер Samba на машине BR-SRV.

+ +**

(СДЕЛАТЬ SNAPSHOT BR-SRV)

** - Создайте 5 пользователей для офиса HQ: имена пользователей формата user№.hq. Создайте группу hq, введите в эту группу созданных пользователей - Введите в домен машину HQ-CLI @@ -361,9 +504,989 @@ Password: modul2 - Пользователи группы hq должны иметь возможность повышать привилегии для выполнения ограниченного набора команд: cat, grep, id. Запускать другие команды с повышенными привилегиями пользователи группы не имеют права - Выполните импорт пользователей из файла users.csv. Файл будет располагаться на виртуальной машине BR-SRV в папке /opt - *BR-SRV* +

*BR-SRV*

> **Обязательно:** > Временно заменяем в /etc/resolv.conf 192.168.100.2 на 10.0.1.4, чтобы samba быстрее скачивалось Переходим к настройкам самого контроллера домена на BR-SRV + +

+ +

+ +> **РЕКОМЕНДАЦИЯ:** +> НА CLI: apt-get update && apt-get remove -y alterator-datetime && apt-get install -y task-auth-ad-sssd && apt-get install -y admc +> НА HQ-SRV: apt update && apt install mdadm -y +> НА CLI: apt-get install -y openssh-server && systemctl restart sshd. + +Появится синее окно, не пугайтесь, так и должно быть. В первом окне вводим имя домена au-team.irpo, а во втором — имя нашего сервера hq-srv + +Удаляем докер: + +***apt remove docker.io -y && ip link delete docker0;*** + +- Проверяем что установлено имя в формате FQDN; +- Задаём domainname; +- Очищаем конфигурацию samba; +- Разворачиваем контроллер домена Active Directory на базе SambaDC с Dnsmasq в качестве DNS + +

+ +

+ +

+ +

+ +Подготовка домена: Samba-tool --realm=au-team.irpo --domain=au-team –adminpass=”PAssw0rd” --dnsbackend=SAMBA_INTERNAL --option=”dns forwrder=192.168.100.2” --server-role=dc + +ВЫ МОЖЕТЕ НАПИСАТЬ ТОЛЬКО «Samba-tool domain provision», А ОСТАЛЬНОЕ ОНО СПРОСИТ САМО + +

+ +

+ +Как видим че то не так, надо перезапустить машинку: + +***reboot*** + +Вводим все заново +Проверяем: + +

+ +

+ +Ничего не показывает, надо перезапустить машину, снова проверяем: + +

+ +

+ +> **Обязательно:** +> ВВОДИМ МАШИНУ обратно В ДОМЕН: +> nano /etc/resolv.conf – nameserver 192.168.100.2 + +> **РЕКОМЕНДАЦИЯ:** +> НА BR-SRV здесь же скачиваем: apt install ansible -y +> НА HQ-SRV скачиваем: apt install nfs-kernel-server -y + +

На клиента ставим необходимые пакеты

+ +

*CLI*

+ +При установке пакета task-auth-ad-sssd у вас возникнет ошибка, связанная с конфликтом с пакетом alterator-datetime, его необходимо удалить: + +***apt-get update && apt-get remove -y alterator-datetime*** + +После пропишем инсталл: + +***apt-get install -y task-auth-ad-sssd*** + +Переходим к редактированию временного соединения и в качестве DNS-сервера прописываем адрес HQ-SRV, а также указываем поисковый домен: + +

+ +

+ +Переходим в Центр управления системой, на вкладке Пользователи выбираем Аутентификация + +

+ +

+ +

+ +

+ +

+ +

+ +Вводим пароль администратора домена: + +

+ +

+ +Нажимаем ОК и перезагружаем систему: + +

+ +

+ +> **РЕКОМЕНДАЦИЯ:** +> НА BR-SRV скачиваем: apt install -y docker.io docker-compose +> НА HQ-SRV скачиваем: apt install -y apache* -y + +В качестве проверки после перезагрузки можно выполнить аутентификацию от имени доменного пользователя Administrator: + +

+ +

+ +Организуем отслеживание подключения к домену: CLI: На клиенте с граф. интерфейсом установим Модуль удаленного управления базой данных конфигурации (ADMC) • Установим пакет admc: + +***apt-get install -y admc*** + +Для использования ADMC необходимо предварительно получить ключ Kerberos для администратора домена. Получить ключ Kerberos можно, например, выполнив следующую команду, из под обычного пользователя: + +***kinit Administrator*** + +ADMC запускается из меню запуска приложений: пункт «Системные» → ADMC или из командной строки (команда admc). + +_____________________________________________________________________________________ + +Если admc долго не может запуститься(не выдает ошибок, но не запускается), то внесите изменения в файл /etc/krb5.conf + +

+ +

+ +_____________________________________________________________________________________ + +На вкладке «Компьютеры» в графическом режиме удобно отслеживать подключение к домену. + +Создаем пять юзеров: + +

+ +

+ +

+ +

+ +

Создаем группу hq и в нее добавляем раннее созданных пользователей

+ +Пользователи группы hq должны иметь возможность повышать привилегии для выполнения ограниченного набора команд: cat, grep, id. Запускать другие команды с повышенными привилегиями пользователи группы не имеют права + +

*CLI*

+ +Настройте файл /etc/sudoers на рабочей станции Linux, как описано в предыдущем ответе, используя синтаксис для доменных групп: +%hq ALL=(ALL) NOPASSWD: /bin/cat, /bin/grep, /usr/bin/id + +> **РЕКОМЕНДАЦИЯ:** +> НА BR-SRV скачиваем: apt install –y mariadb-* +> НА HQ-SRV скачиваем: apt install -y php php8.2 php-curl php-zip php-xml libapache2-mod-php php-mysql php-mbstring php-gd php-intl php-soap -y + + +###

2. Сконфигурируйте файловое хранилище

+ +

(СДЕЛАТЬ SNAPSHOT на HQ-SRV)

+ +- При помощи трёх дополнительных дисков, размером 1Гб каждый, на HQ-SRV сконфигурируйте дисковый массив уровня 5 +- Имя устройства – md0, конфигурация массива размещается в файле /etc/mdadm.conf +- Обеспечьте автоматическое монтирование в папку /raid5 +- Создайте раздел, отформатируйте раздел, в качестве файловой системы используйте ext4 +- Настройте сервер сетевой файловой системы(nfs), в качестве папки общего доступа выберите /raid5/nfs, доступ для чтения и записи для всей сети в сторону HQ-CLI +- На HQ-CLI настройте автомонтирование в папку /mnt/nfs +- Основные параметры сервера отметьте в отчёте + +Подготовка дисков + +

*HQ-SRV*

+ +Убедитесь, что дополнительные диски распознаны системой. Список подключенных дисков можно проверить командой: + +

+ +

+ +Создайте RAID 5 массив из трех 1Гб дисков (предположим, они определены как /dev/sdb, /dev/sdc, и /dev/sdd): + +Скачаем службу mdadm: + +

+ +

+ +

+ +

+ +Проверяем: + +

+ +

+ +Проверьте статус RAID массива: + +

+ +

+ +Сохраните конфигурацию массива в файл /etc/mdadm.conf: + +

+ +

+ +1. Создание файловой системы и настройка монтирования + +Создайте раздел и отформатируйте его в ext4: + +

+ +

+ +Создайте точку монтирования и настройте автоматическое монтирование в /etc/fstab: + +

+ +

+ +Смонтируйте файловую систему: + +

+ +

+ +2. Настройка NFS-сервера на HQ-SRV + +Установите NFS-сервер (если он еще не установлен): + +

+ +

+ +Создайте директорию для общего доступа: + +

+ +

+ +Настройте права доступа для общей папки: + +

+ +

+ +Настройте экспорт NFS для всей сети с разрешением на чтение и запись. +Откройте файл /etc/exports и добавьте строку: + +

+ +

+ +Примените изменения в конфигурации NFS: + +

+ +

+ +Перезапустите NFS-сервер: + +

+ +

+ +> **ПРИМЕЧАНИЕ** +> Основные параметры сервера отметьте в отчёте + +3. Настройка автомонтирования на HQ-CLI (под ALT Workstation) + +

*HQ-CLI*

+ +Создайте точку монтирования: + +

+ +

+ +Настройте автомонтирование в /etc/fstab, откройте этот файл и добавьте следующую строку: + +

+ +

+ +Смонтируйте папку вручную (или перезагрузите систему для применения настроек): + +

+ +

+ +Проверка подключения NFS на HQ-CLI: + +

+ +

+ +> **РЕКОМЕНДАЦИЯ:** +> НА HQ-SRV скачиваем: apt install -y mariadb-* -y + +###

3. Настройте службу сетевого времени на базе сервиса chrony

+ +- В качестве сервера выступает HQ-RTR +- На HQ-RTR настройте сервер chrony, выберите стратум 5 +- В качестве клиентов настройте HQ-SRV, HQ-CLI, BR-RTR, BR-SRV + +1. Настройка NTP сервера: + +

*HQ-RTR*

+ +Установим пакет chrony на каждой машине: + +***apt install -y chrony*** + +Приводим конфигурационный файл "chrony.conf" к следующему виду: + +***nano /etc/chrony/chrony.conf*** + +

+ +

+ +> где: +> - server 127.0.0.1 iburst prefer - указываем сервером синхронизации самого себя, опция «iburst» принудительно отправляет сразу несколько пакетов для точности синхронизации, +> - hwtimestamp * - опция, чтобы сетевой интерфейс считал собственный источник времени верным и синхронизировал клиентов с ним; +> - local stratum 5 - устанавливаем для себя значение по stratum = 5; +> - allow - кому разрешается подключаться к серверу и запрашивать время: чтобы не перечеслять все используемые в задании IPv4 и IPv6 сети, используется 0/0 и ::/0; + +Запускаем и добавляем в автозагрузку службу chronyd, и не забываем рестартать сервис: + +***systemctl enable --now chrony*** +***systemctl restart chrony*** + +

+ +

+ +Проверяем: + +

+ +

+ +2. Настройка NTP клиентов: + +

*HQ-SRV, BR-SRV, BR-RTR, HQ-CLI*

+ +Установим пакет chrony: + +***apt install -y chrony*** + +Приводим конфигурационный файл "chrony.conf" к следующему виду: + +***nano /etc/chrony/chrony.conf*** + +

+ +

+ +> где: 192.168.100.1 - IPv4 адрес HQ-R; + +Запускаем и добавляем в автозагрузку службу chronyd: + +systemctl enable --now chrony +> на cli chronyd + +systemctl restart chrony +> на cli chronyd + +Проверяем с клиента HQ-SRV: + +

+ +

+ +Проверяем с сервера HQ-R: + +

+ +

+ +BR-R | BR-SRV | CLI: Настройка аналогична HQ-SRV - за исключением указания соответствующих адресов + +> **РЕКОМЕНДАЦИЯ:** +> НА HQ-SRV скачиваем: apt install -y git + +###

4. Сконфигурируйте ansible на сервере BR-SRV

+ +

(СДЕЛАЙ SNAPSHOT НА BR-SRV)

+ +- Сформируйте файл инвентаря, в инвентарь должны входить HQSRV, HQ-CLI, HQ-RTR и BR-RTR +- Рабочий каталог ansible должен располагаться в /etc/ansible +- Все указанные машины должны без предупреждений и ошибок отвечать pong на команду ping в ansible посланную с BR-SRV + +

*BR-SRV*

+ +1. Установите Ansible (если он еще не установлен): + +***apt update && apt install ansible -y*** + +2. Создание рабочего каталога Ansible + +Ansible обычно уже использует /etc/ansible как рабочий каталог, но если его нет, создайте его вручную: + +

+ +

+ +3. Создание файла инвентаря + +Создайте инвентарь файла : /etc/ansible/hosts. Откройте файл /etc/ansible/hosts для редактирования: +> ВНИМАНИЕ: НУЖНО УБРАТЬ порт 2024 и пользователя sshuser у CLI + +

+ +

+ +

+ +

+ +4. Настройка SSH-доступа к машинам + +Для того чтобы Ansible мог управлять машинами без необходимости ввода пароля, настройте SSH-доступ: + +

+ +

+ +______________________________________________________________________________________ + +

(ДОПОЛНЕНИЕ)

+ +

*HQ-CLI*

+ +Для hq-cli нужно установить ssh службу: ***apt-get install -y openssh-server*** + +Перезагружаем ssh на hq-cli: ***systemctl restart sshd*** + +Для того чтобы зайти в конфиг ssh на альт линукс(cli) нужно ввести команду: +***nano /etc/openssh/sshd_config*** + +______________________________________________________________________________________ + +Скопируйте SSH-ключ на всех машинах в инвентаре : Выполните эту команду для каждой машины, чтобы разрешить безпарольный доступ: +> ВНИМАНИЕ: НУЖНО УБРАТЬ порт 2024 и пользователя sshuser у CLI + +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +5. Проверка подключения в Ansible + +Выполните команду "ansible all -m ping" для проверки соединения со всеми хостами из инвентаря файла: + +

+ +

+ +> **РЕКОМЕНДАЦИЯ:** +> НА HQ-SRV скачиваем: git clone git://git.moodle.org/moodle.git + +###

5. Развертывание приложений в Docker на сервере BR-SRV.

+ +- Создайте в домашней директории пользователя файл wiki.yml для приложения MediaWiki. +- Средствами docker compose должен создаваться стек контейнеров с приложением MediaWiki и базой данных. +- Используйте два сервиса +- Основной контейнер MediaWiki должен называться wiki и использовать образ mediawiki +- Файл LocalSettings.php с корректными настройками должен находиться в домашней папке пользователя и автоматически монтироваться в образ. +- Контейнер с базой данных должен называться mariadb и использовать образ mariadb (субд). +- Разверните +- Он должен создавать базу с названием mediawiki, доступную по стандартному порту, пользователя wiki с паролем WikiP@ssw0rd должен иметь права доступа к этой базе данных +- MediaWiki должна быть доступна извне через порт 8080. + +

*BR-SRV*

+ +1. Скачиваем докер: + +***apt install -y docker.io docker-compose*** + +2. Включаем и добавляем в автозагрузку службу docker: + +***systemctl enable --now docker.service*** + +3. В домашней директории пользователя root создаём файл wiki.yml со следующим содержимым: + +***nano ~/wiki.yml*** + + +

+ +

+ +> где: +> - services — основной раздел, где мы будем создавать и описывать наши сервисы (контейнеры docker). В данном примере сервиса два: MediaWiki - для приложения mediawiki и database - для базы данных; container_name — имя, которое получит созданный контейнер; +> - image — имя образа, который будет использоваться для создания контейнера; +> - restart поведения контейнера при падении; +> - ports (внешняя публикация). С помощью данной опции мы можем указывать, на каких портах должен слушать контейнер и на какие порты должны пробрасываться запросы +> - environment — задаем переменные окружения; +> - volumes - проброс папок; +> - links - ссылайтесь на контейнеры в другом сервисе. Укажите либо имя сервиса, либо псевдоним ссылки (SERVICE:ALIAS) + +***apt install –y mariadb-**** + +> P.S. После первоначальной настройки через Web-интерфейс с CLI загрузите LocalSettings.php в тот же каталог, что и эта wiki.yml и раскомментируйте следующую строку "# - ./LocalSettings.php:/var/www/html/LocalSettings.php" и используйте docker-compose для перезапуска службы mediawiki + +4. Чтобы отдельный volume для хранения базы данных имел правильное имя - создаём его средствами docker: + +***docker volume create dbvolume*** + +5. Выполняем сборку и запуск стека контейнеров с приложением MediaWiki и базой данных описанных в файле wiki.yml: + +***docker-compose -f wiki.yml up -d*** + +Проверяем: + +

+ +

+ +

+ +

+ +

*HQ-CLI*

+ +***su -*** + +***echo “192.168.200.2 wiki.au-team.irpo mediawiki” >> /etc/hosts*** + +1. Переходим в браузер http://wiki.au-team.irpo:8080/ для продолжения установки через веб-интерфейс - нажимаем set up the wiki: + +

+ +

+ +2. Выбираем необходимый Язык - нажимаем Далее: + +

+ +

+ +3. После успешной проверки внешней среды - нажимаем Далее: + +

+ +

+ +4. Заполняем параметры подключение к Базе Данных в соответствие с заданными переменными окружения в wiki.yml, которые соответствуют требованиям задания: + +Пример заполнения: + +Хост базы данных: db +Имя базы данных: mediawiki +Имя пользователя базы данных: wiki +Пароль базы данных: WikiP@ssw0rd + +

+ +

+ +

+ +

+ +5. Заполняем необходимые сведения: + +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +6. После чего будет автоматически скачен файл LocalSettings.php - который необходимо передать на BR-SRV в домашнюю директорию пользователя root туда же где лежит wiki.yml: + +

+ +

+ +7. Забираем файл LocalSettings.php с CLI: + +

*HQ-CLI:*

+ +

+ +

+ +

+ +

+ +

*BR-SRV:

+ +Перемещаем в домашнюю директорию пользователя /root: + +

+ +

+ +Проверяем: + +

+ +

+ +_____________________________________________________________________________________ + +Прямой поиск файла поиск файла LocalSettings.php командой find: + +***find / -name LocalSettings.php 2>/dev/null*** + +

+ +

+ +Команда "ls"(list) показывает файлы и директории в текущем каталоге. +Команда "pwd" показывает каталоr в котором ты находишься. + +_____________________________________________________________________________________ + +

+ +

+ +Перезапускаем сервисы средствами docker-compose: + +***docker-compose -f wiki.yml stop*** +***docker-compose -f wiki.yml up -d*** + + +

+ +

+ +

*Снова HQ-CLI:*

+ +1. Проверяем доступ к http://wiki.au-team.irpo:8080 + + +

+ +

+ +2. Вход, в моем случае, из под пользователя admin с паролем P@ssw0rddd + +

+ +

+ +

+ +

+ +###

6. На маршрутизаторах сконфигурируйте статическую трансляцию портов

+ +- Пробросьте порт 80 в порт 8080 на BR-SRV на маршрутизаторе BR-RTR, для обеспечения работы сервиса wiki +- Пробросьте порт 2024 в порт 2024 на HQ-SRV на маршрутизаторе HQ-RTR +- Пробросьте порт 2024 в порт 2024 на BR-SRV на маршрутизаторе BR-RTR + +

*BR-RTR*

+ +

+ +

+ +

*HQ-RTR*

+ +

+ +

+ +###

7. Запустите сервис moodle на сервере HQ-SRV

+ +- Используйте веб-сервер apache +- В качестве системы управления базами данных используйте mariadb +- Создайте базу данных moodledb +- Создайте пользователя moodle с паролем P@ssw0rd и предоставьте ему права доступа к этой базе данных +- У пользователя admin в системе обучения задайте пароль P@ssw0rd +- На главной странице должен отражаться номер рабочего места в виде арабской цифры, других подписей делать не надо +- Основные параметры отметьте в отчёт + +

*HQ-SRV*

+> !По сути у нас уже все скачено! + +Устанавливаем веб-сервер Apache2 и необходимые пакеты: + +***apt install -y apache* -y*** + +Устанавливаем PHP и необходимые модули: + +***apt install -y php php8.2 php-curl php-zip php-xml libapache2-mod-php php-mysql php-mbstring php-gd php-intl php-soap -y*** + +Установка СУБД MySQL: + +***apt install -y mariadb-* -y*** +> !По сути у нас уже все скачено! + +Включаем и добавляем в автозагрузку MySQL: + +***systemctl enable --now mariadb*** +***systemctl enable --now apache2*** + +Подключаемся к MySQL, создаём базу данных и пользователя: +имя базы даных - " moodledb "; +имя пользователя - "moodle", пароль "P@ssw0rd"; + +***mysql +***> CREATE DATABASE moodledb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;*** +***> CREATE USER 'moodle'@'localhost' IDENTIFIED BY 'P@ssw0rd';*** +***> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER ON moodle.* TO 'moodle'@'localhost';*** +***> EXIT;*** + +______________________________________________________________________________________ + +Если вдруг в веб при вводе данных параметров базы данных будет вылазить ошибка – *данной базы данных не существует, данному пользователю не даны права на создание базы данных*, то удаляем их и создаем заново: + +***>DROP DATABASE moodledb;*** +***>DROP USER 'moodle'@'localhost';*** + +______________________________________________________________________________________ + +Устанавливаем git, чтобы можно было скачать проект Moodle: +> !По сути у нас уже все скачено! + +***apt install -y git*** + +Загружаем код проекта Moodle: + +***git clone git://git.moodle.org/moodle.git*** +> !По сути у нас уже все скачено! + +Переходим в загруженный каталог moodle: + +***cd moodle*** + +Извлекаем список каждой доступной ветви: + +***git branch -a*** + +

+ +

+ +Сообщаем git, какую ветку отслеживать или использовать: + +***git branch --track MOODLE_403_STABLE origin/MOODLE_403_STABLE*** + +проверяем: + +***git checkout MOODLE_403_STABLE*** + +

+ +

+ +Копируем локальный репозиторий в /var/www/html/: + +***cd ..*** +***cp -R moodle /var/www/html*** + +Создаём необходимую структуру каталагов для корректной установки и работы Moodle: + +***mkdir /var/moodledata*** +***chown -R www-data /var/moodledata*** +***chmod -R 777 /var/moodledata*** +***chmod -R 0755 /var/www/html/moodle*** +***chown -R www-data:www-data /var/www/html/moodle*** + +Описываем конфигурационный файл для веб-сервера Apache: + +***nano /etc/apache2/sites-available/moodle.conf*** + +

+ +

+ +> где: +> - ServerName - основное имя домена +> - ServerAlias - дополнительное имя, по которому будет доступен сайт +> - DocumentRoot - путь до проекта для этого домена +> - AllowOverride All - когда сервер находит .htaccess файл (как определено AccessFileName) ему необходимо знать какие директивы, объявленные в том файле могут отменять ранее утановленную информацию доступа. Эта директива может быть установлена в None, т.е. чтобы сервер не читал файл .htaccess. Если она установленна в All - сервер будет допускать все директивы .htaccess файла. +> - Options -Indexes +FollowSymLinks - означает, что если каталог является символьной ссылкой, перейдите по ссылке + +Создаём символьную ссылку из sites-available на sites-enabled: + +***ln -s /etc/apache2/sites-available/moodle.conf /etc/sites-enabled*** + +Проверяем синтаксис файла виртуального хоста: ***apachectl configtest*** + +

+ +

+ +Правим количество входных переменных, которые могут быть приняты в одном запросе, для работы Moodle - необходимо 5000, а значение в php.ini по умолчанию 1000: + +

+ +

+ +Проверяем: + +***nano /etc/php/8.2/apache2/php.ini*** + +

+ +

+ +Перезагружаем apache: + +***systemctl restart apache2*** + +

*HQ-CLI*

+ +После можно переходить в браузер для установки Moodle по http:///install.php + +1. Перед тем как зайти на сайт в hq-cli в файле /etc/hosts прописываем следующее: + +***192.168.100.2 moodle.au-team.irpo moodle*** + +2. Открываем firefox переходим на *http://moodle.au-team.irpo/moodle* +- выбираем Язык - нажимаем "Далее": + +

+ +

+ +3. Подтверждаем пути - правим Каталог данных (в соответствии с созданной ранее директорией - /var/moodledata) - нажимаем "Далее": + +

+ +

+ +4. Выбираем драйвер баз данных MariaDB - нажимаем "Далее": + +

+ +

+ +5. Заполняем параметры ранее созданной Базы данных - "пользователя БД, пароль и порт": + +***СЕРВЕР БАЗ ДАННЫХ (ХОСТ) localhost*** +***НАЗВАНИЕ БАЗЫ ДАННЫХ moodle*** +***ПОЛЬЗОВАТЕЛЬ БАЗЫ ДАННЫХ moodle*** +***ПАРОЛЬ P@ssw0rd*** + +6. нажимаем - "Продолжить": + +

+ +

+ +7. Нажимаем - "Продолжить": не обращаем внимание на то, что у нас не настроен https + +

+ +

+ +> **РЕКОМЕНДАЦИЯ:** +> пока идет долгая установка делаем nginx на hq-rtr, он идет сразу после moodle + +8. заполняем необходимые сведения и нажимаем - "Обновить профиль": + +

+ +

+ +

+ +

+ +9. Заполняем необходимые сведения и нажимаем - "Сохранить изменения": + +

+ +

+ +

+ +

+ +###

8. Настройте веб-сервер nginx как обратный прокси-сервер на HQ-RTR

+ +- При обращении к HQ-RTR по доменному имени moodle.au-team.irpo клиента должно перенаправлять на HQ-SRV на стандартный порт, на сервис moodle +- При обращении к HQ-RTR по доменному имени wiki. au-team.irpo клиента должно перенаправлять на BR-SRV на порт, на сервис mediwiki + +

*HQ-RTR*

+ +1. Установите Nginx + +***apt install nginx -y*** + +Запустите и активируйте Nginx: + +***systemctl start nginx*** +***systemctl enable nginx*** + +2. Настройка Nginx как обратного прокси + +Создадим конфигурационный файл для сайта в Nginx, в котором настроим виртуальные хосты: + +

+ +

+ +Добавьте конфигурацию для проксирования запросов в файл reverse-proxy.conf: + +

+ +

+ +Сохраните файл и закройте редактор. + +Создайте символическую ссылку на этот файл в папке sites-enabled для активации конфигурации: + +

+ +

+ +Проверьте конфигурацию Nginx на наличие синтаксических ошибок: + +

+ +

+> на hq-rtr в файле /etc/resolv.conf должно быть прописано dns 192.168.100.2 + +*Если конфигурация правильная, вы увидите сообщение syntax is ok.* + +Перезагрузите Nginx, чтобы применить изменения: + +***systemctl reload nginx*** + +###

9. Удобным способом установите приложение Яндекс Браузере для организаций

+ +

*HQ-CLI*

+ +

+ +

+ +

+ +

+ +

+ +

+> **ПРИМЕЧАНИЕ:** +> Установку браузера отметьте в отчёте + +##

МОДУЛЬ 3

+

(1,2 заданий не будет, 7ое задание будет)