Конкурсное задание финал_v9
1.5.2. Структура модулей конкурсного задания (инвариант/вариатив)
Модуль Б. (Настройка технических и программных средств информационно-коммуникационных систем)
Время на выполнение модуля 5 часов.
Доступ к ISP вы не имеете!!
Рисунок 1. Топология
Название устройства | ОС |
---|---|
RTR-HQ | Eltex vESR |
RTR-BR | Eltex vESR |
SRV-HQ | Astra Linux 1.7 |
SRV-BR | Astra Linux 1.7 |
CLI-HQ | Astra Linux 1.7 |
CLI-BR | Альт Рабочая станция 10 |
SW-HQ | AstraLinux 1.7 |
SW-BR | Альт Сервер 10 |
PVE1-BR | Proxmox 8.0.3 |
PVE2-BR-BR | Proxmox 8.0.3 |
CICD-HQ | Debian 11 |
K8S-MASTER-HQ | Debian 11 |
WORKER1-HQ-HQ | Debian 11 |
WORKER2-HQ-HQ | Debian 11 |
K8S-WORKER1-HQ | Debian 11 |
K8S-WORKER2-HQ | Debian 11 |
Задания:
- Базовая настройка
- Настройте имена устройств согласно топологии
- Используйте полное доменное имя
- Сконфигурируйте адреса устройств на свое усмотрение. Для офиса HQ выделена сеть 10.0.10.0/24, для офиса BR выделена сеть 10.0.20.0/24. Данные сети необходимо разделить на подсети для каждого vlan.
- На SRV-HQ и SRV-BR, создайте пользователя sshuser с паролем P@ssw0rd
- Пользователь sshuser должен иметь возможность запуска утилиты sudo без дополнительной аутентификации.
- Запретите парольную аутентификацию. Аутентификация пользователя sshuser должна происходить только при помощи ключей
- Измените стандартный ssh порт на 2023
- На CLI-HQ сконфигурируйте клиент для автоматического подключения к SRV-HQ и SRV-BR под пользователем sshuser. При подключении автоматически должен выбираться корректный порт. Создайте пользователя sshuser на CLI-HQ для обеспечения такого сетевого доступа.
- Настройка дисковой подсистемы
- На SRV-HQ настройте зеркалируемый LVM том
- Используйте два неразмеченных жестких диска
- Настройте автоматическое монтирование логического тома
- Точка монтирования /opt/data.
- На SRV-BR сконфигурируйте stripped LVM том.
- Используйте два неразмеченных жестких диска
- Настройте автоматическое монтирование тома
- Обеспечьте шифрование тома средствами dm-crypt. Диск должен монтироваться при загрузке ОС без запроса пароля.
- Точка монтирования /opt/data
- Настройка коммутации
- В качестве коммутаторов используются SW-HQ и SW-BR.
- В обоих офисах сервера должны находится во vlan100, клиенты во vlan200, management подсеть во vlan300
- Создайте management интерфейсы на коммутаторах
- Для каждого vlan рассчитайте подсети, выданные для офисов. Количество хостов в каждой подсети не должно превышать 30-ти.
- Создайте vlan400 для Proxmox. Этот VLAN является внутренним для всех виртуальных машин, развернутых в кластере.
- Установка и настройка сервера баз данных
- В качестве серверов баз данных используйте сервера SRV-HQ и SRV-BR
- Разверните сервер баз данных на базе Postgresql
- Создайте базы данных prod, test, dev
- Заполните базы данных тестовыми данными при помощи утилиты pgbench. Коэфицент масштабирования сохраните по умолчанию.
- Создайте пользователей produser, testuser, devuser, каждому из пользователей дайте доступ к соответствующей базе данных.
- Создайте пользователя dbadmin. Пользователь должен обладать привилегиями суперпользователя.
- Разрешите внешние подключения для всех пользователей.
- Сконфигурируйте репликацию с SRV-HQ на SRV-BR
- Обеспечьте отказоустойчивость СУБД при помощи HAProxy.
- HAProxy установите на SW-HQ.
- Режим балансировки – Hot-Standby: Активным необходимо сделать только SRV-HQ. В случае отказа SRV-HQ активным сервером должен становится SRV-BR.
- Выбор standby режима (RO/RW) остается на усмотрение участника.
- Обеспечьте единую точку подключения к СУБД по имени dbms.company.prof
- Создайте базы данных prod, test, dev
- Для администрирования сервера баз данных разверните приложение CloudDBeaver
- Веб панель CloudDBeaver должна быть доступна по адресу db-adm.company.prof
- Доступ к CloudDBeaver должен быть защищен при помощи сертификатов. Ошибок доверия возникать не должно
- Доступ к консоли CloudDBeaver должен быть для пользователя cbadmin с паролем P@ssw0rd
- Система должна быть подключена к базе данных с правами RW.
- Настройка системы централизованного журналирования
- В качестве сервера системы централизованного журналирования используйте SRV-HQ
- В качестве системы централизованного журналирования используйте Rsyslog совместно с веб панелью LogAnalyzer
- Настройте Rsyslog
- Настройте взаимосвязь сервера баз данных с Rsyslog
- В качестве сервера баз данных используйте postgresql.
- Настройте возможность приема сообщений по протоколам TCP и UDP по порту 514
- Настройте взаимосвязь сервера баз данных с Rsyslog
- Установите LogAnalyzer
- Установочные файлы находятся в addons_final.iso
- Для подключения к базе данных создайте пользователя logs и базу данных logs. У пользователя должны быть полные права на его базу данных.
- Веб панель LogAnalyzer должна быть доступна по адресу logs.company.prof
- Для авторизации в веб панели LogAnalyzer необходимо использовать пользователя admin с паролем P@ssw0rd
- Защитите подключение к loganalyzer при помощи https. При подключении не должно возникать ошибок, связанных с сертификатами.
- Настройте Rsyslog
- Настройте централизованный сбор журналов с хостов RTR-HQ, RTR-BR, SRV-HQ, SRV-BR.
- Настройка системы централизованного мониторинга
- В качестве сервера системы централизованного мониторинга используйте SRV-HQ
- В качестве системы централизованного мониторинга используйте Zabbix
- Вам доступна документация на сайте https://www.zabbix.com/ru/
- В качестве сервера баз данных используйте postgresql
- Система централизованного мониторинга должна быть доступна по адресу https://monitoring.company.prof
- Администратором системы мониторинга должен быть пользователь admin с паролем P@ssw0rd
- Подключение должно быть защищено при помощи https, при подключении не должно возникать ошибок.
- Подключите к мониторингу все устройства на Linux. Информацию о устройствах следует собирать через стандартный Linux Template by Zabbix.
- Настройка динамической трансляции адресов
- Настройте динамическую трансляцию адресов для обоих офисов. Доступ к интернету необходимо разрешить со всех устройств.
- Настройка протокола динамической конфигурации хостов
- Настройте протокол динамической конфигурации хостов для устройств в подсетях CLI - RTR-HQ
- Адрес сети – согласно топологии
- Адрес шлюза по умолчанию – адрес маршрутизатора RTR-HQ
- DNS-суффикс – company.prof
- Выдаваемые адреса:
- Первый адрес – первый незанятый вами адрес сети
- Последний адрес – шестой незанятый вами адрес сети
- Настройте протокол динамической конфигурации хостов для устройств в подсетях CLI RTR-BR
- Адрес сети – согласно топологии
- Адрес шлюза по умолчанию – адрес маршрутизатора RTR-BR
- DNS-суффикс – company.prof
- Выдаваемые адреса:
- Первый адрес – первый незанятый вами адрес сети
- Последний адрес – шестой незанятый вами адрес сети
- Настройка DNS для SRV-HQ и SRV-BR
- Реализуйте основной DNS сервер компании на SRV-HQ
- Для всех устройств обоих офисов необходимо создать записи A и PTR.
- Для всех сервисов предприятия необходимо создать записи CNAME
- Создайте запись test таким образом, чтобы при разрешении имени из левого офиса имя разрешалось в адрес SRV-HQ, а из правого – в адрес SRV-BR.
- Сконфигурируйте SRV-BR, как резервный DNS сервер - каталог хранения файлов зон на подчиненном DNS - /opt/dns. Загрузка записей с SRV-HQ должна быть разрешена только для SRV-BR.
- Клиенты предприятия должны быть настроены на использование внутренних DNS серверов
- Настройка узла управления Ansible
- Настройте узел управления на базе SRV-BR
- Установите Ansible.
- Сконфигурируйте инвентарь по пути /etc/ansible/inventory. Инвентарь должен содержать три группы устройств:
- Networking
- Servers
- Clients
- Напишите плейбук в /etc/ansible/gathering.yml для сбора информации об IP адресах и именах всех устройств (и клиенты, и сервера, и роутеры). Отчет должен быть сохранен в /etc/ansible/output.yaml, в формате ПОЛНОЕ_ДОМЕННОЕ_ИМЯ – АДРЕС
- Между маршрутизаторами RTR-HQ и RTR-BR сконфигурируйте защищенное соединение
- Все параметры на усмотрение участника
- Используйте парольную аутентификацию
- Обеспечьте динамическую маршрутизацию: ресурсы одного офиса должны быть доступны из другого офиса
- Для обеспечения динамической маршрутизации используйте протокол OSPF
- На сервере SRV-HQ сконфигурируйте основной доменный контроллер на базе FreeIPA
- Создайте 30 пользователей user1-user30
- Пользователи user1-user10 должны входить в состав группы group1
- Пользователи user11-user20 должны входить в состав группы group2
- Пользователи user21-user30 должны входить в состав группы group3
- Разрешите аутентификацию с использованием доменных учетных данных на ВМ CLI-HQ и SRV-HQ только.
- Установите сертификат центра сертификации FreeIPA в качестве доверенного на обоих клиентских ПК.
- Сконфигурируйте перемещаемые профили для всех пользователей, кроме локальных. Профили хранятся по каталогу /mnt/homes/$USER на клиентских ПК.
- На сервере SRV-BR сконфигурируйте подчиненный центр сертификации
- Имя подчиненного центра сертификации – SubCA
- Каталог хранения файлов подчиненного ЦС - /etc/SubCA
- Подпишите сертификат подчиненного ЦС при помощи ЦС на FreeIPA
- Обеспечьте доверие к сертификату со стороны обоих клиентов
- Все сертификаты, необходимые для каких-либо сервисов следует издавать при помощи подчиненного ЦС
- Доверие к сертификатам необходимо обеспечить для браузера Firefox. Доверие должно быть обеспечено вне зависимости от используемого пользователя.
- На SRV-BR сконфигурируйте proxy-сервер со следующими параметрами
- Пользователям group1 разрешен доступ на любые сервисы предприятия
- Пользователям group2 разрешен доступ только к системе мониторинга
- Пользователям group3 не разрешен доступ никуда, также, как и пользователям, не прошедшим аутентификацию
- Любым пользователям компьютера CLI-HQ разрешен доступ в интернет и на все сервисы предприятия, кроме доменов vk.com, mail.yandex.ru и worldskills.org
- Настройте клиент правого офиса на использование прокси сервера предприятия
- Авторизацию для proxy спрашивается браузером, SSO не ожидается
- Настройка систем виртуализации
- На машинах PVE1-BR и PVE2-BR установите Proxmox VE
- Соберите кластер из имеющихся серверов
- В качестве провайдера сети используйте OpenVSwitch
- Сконфигурируйте дополнительные диски, подключенные к VM как LVM Thinpool для размещения виртуальных машин
- Сконфигурируйте виртуальный маршрутизатор для доступа к внутренней сети виртуальных машин (VLAN 400). Виртуальный маршрутизатор должен быть сконфигурирован с поддержкой тэгирования трафика.
- В качестве виртуального роутера используйте виртуальную машину на операционной системе Debian 11.
- Виртуальный роутер разверните на PVE1
- Сконфигурируйте аутентификацию с использованием развернутой ранее службы каталогов
- Напишите скрипт /opt/snapshot.sh для создания снапшотов виртуальных машин.
- Скрипт должен запускаться и работать в фоне
- Скрипт должен создавать один снапшот виртуальной машины ROUTER раз в 3 часа. В /etc/crontab разместите правило.
- Скрипт также можно запустить вручную, в качестве входных данных скрипту передается ID виртуальной машины
- Разверните NFS сервер на машине SRV-BR
- Подключите его в кластер Proxmox PVE
- Создайте на основе машины ROUTER template
- Разверните из темплейта виртуальную машину CLI-VM на PVE2
- Убедитесь в сетевой доступности инфраструктуры предприятия CLI-VM через виртуальный роутер ROUTER на PVE1
- Обеспечьте доступ по HTTPS без ошибок.
- Сертификат для PVE должен быть выписан издающим подчиненным ЦС.
Запись | Тип записи |
---|---|
rtr-hq.company.prof | A |
Rtr-br.company.prof | A |
sw-hq.company.prof | A |
sw-br.company.prof | A |
srv-hq.company.prof | A |
srv-br.company.prof | A |
cli-hq.company.prof | A |
cicd-hq.company.prof | A |
worker1-hq.company.prof | A |
worker2-hq.company.prof | A |
k8s-master-hq.company.prof | A |
k8s-worker1-hq.company.prof | A |
k8s-worker2-hq.company.prof | A |
pve1-br.company.prof | A |
pve2-br.company.prof | A |
cli-br.company.prof | A |
dbms.company.prof | CNAME |
db-adm.company.prof | CNAME |
logs.company.prof | CNAME |
monitoring.company.prof | CNAME |
Модуль В. (Автоматизация)
Время на выполнение модуля 5 часов
Задания:
Сертификаты для всех веб-сервисов должны быть выпущены SubCA, развернутым в первый соревновательный день.
- На машине CICD-HQ разверните GitLab
- Защитите подключение к GitLab при помощи https. Сертификат используйте из подчиненного ЦС первого дня.
- Сконфигурируйте GitLab Registry для хранения образов docker-контейнеров
- GitLab должен быть доступен по адресу https://gitlab.company.prof
- Используйте директорию /opt/gitlab для хранения файлов gitlab
- Создайте локального пользователя stasyan с паролем P@ssw0rd
- Он должен видеть все проекты, которые требуются по заданию
- Вы можете использовать учетную запись этого пользователя для создания репозитория и всей работы.
- На машинах K8S-MASTER, K8S-WORKER1-HQ и K8S-WORKER2-HQ сконфигурируйте MICROK8S кластер.
- В составе кластера должны присутствовать один мастер и два воркера
- Сконфигурируйте в кластере работоспособные базы данных для приложения
- В качестве баз данных используются:
- PostgreSQL
- MongoDB
- Redis
- В качестве баз данных используются:
- Сконфигурируйте liveness и readiness probe у приложения
- Сконфигурируйте ArgoCD
- Добавьте автоматическую синхронизацию с GitLab репозиторием приложения
- Сервис ArgoCD должен быть доступен по адресу https://argocd.company.prof
- Приложение должно быть развернуто средствами argocd и быть работоспособно по адресу https://app.company.prof
- Для обеспечения доступа к приложению добавьте ingress-контроллер
- Все ресурсы кластера (кроме бд) необходимо защитить при помощи подчиненного центра сертификации
- Доступ к argoCD под логином admin с паролем P@ssw0rd
- Сконфигурируйте мониторинг состояния кластера MICROK8S при помощи Prometheus и Grafana.
- Мониторинг должен быть доступен по адресу https://grafana.company.prof
- Создайте дашборд Pods
- Необходимо в дашборде отобразить CPU, ОЗУ всех подов
- Создайте дашборд Cluster
- Отобразите в дашборде сведения о нагрузке CPU, ОЗУ всего кластера суммарно
- Доступ к Grafana под логином admin с паролем P@ssw0rd
- Установите два GitLab раннера на ВМ WORKER1-HQ и WORKER2-HQ
- Подключите раннеры к GitLab
- Раннеры должны быть сконфигурированы в режиме Docker
- Сконфигурируйте доменную аутентификацию в GitLab. Доступ должен быть разрешен только для пользователей группы group3.
- Все проекты, используемые в рамках задания, должны быть видны пользователям этой группы
- Создайте репозиторий с названием hitech2023-app
- Загрузите исходный код приложения
- Создайте директорию kubernetes и используйте ее для хранения манифестов, а также синхронизации argocd
- Сконфигурируйте CI/CD следующим образом:
- Этап сборки контейнера с приложением
- Сборка бэкенда происходит только при изменениях в директории app-backend
- Перед сборкой необходимо произвести проверку синтаксиса бэкенда приложения при помощи pylint
- Сборка фронтенда происходит только при изменениях в директории app-frontend
- Сборка бэкенда происходит только при изменениях в директории app-backend
- Этап отправки контейнера с приложением
- Приложение должно отправляться в GitLab Container Registry с меткой latest
- Этап сборки контейнера с приложением
- Создайте новый репозиторий и назовите его infrastructure
- Создайте в нем файл README.md для инструкций по запуску плейбука.
- Обеспечьте работу всех скриптов\ролей\паролей таким образом, чтобы при клонировании на компьютер с репозитория возможно было выполнить запуск скрипта.
- Все необходимые для этого параметры и ключи пропишите в README.md.
- Создайте директорию ansible и добавьте туда манифесты из задания 10
- Создайте в нем файл README.md для инструкций по запуску плейбука.
- Создайте Ansible-роль для настройки АРМ пользователей
- Роль должна называться client-deploy-role
- Необходимо устанавливать следующее ПО
- Браузер firefox
- Zabbix-agent
- Midnight-commander
- Плейбук располагается на машине SRV-BR по пути - /etc/ansible/client_install.yml
- Роль должна выполнять конфигурацию sudo. Доступ к sudo должен быть разрешен только группе group1
- Роль должна выполнять конфигурацию ярлыков на рабочем столе пользователя. Для всех пользователей на рабочем столе необходимо разместить ярлык Firefox и удалить все остальные
- Хранение паролей в Ansible-плейбуках в открытом виде запрещено