devsecops_и_промышленные_решения

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
devsecops_и_промышленные_решения [2026/06/15 09:52]
val [2.2 Развертывание GitLab]
devsecops_и_промышленные_решения [2026/06/20 08:57] (current)
val [3.1 Интеграция инструментов безопасности в CI/CD]
Line 18: Line 18:
 ===== Модуль 1: Развертывание инфраструктуры предприятия ===== ===== Модуль 1: Развертывание инфраструктуры предприятия =====
  
-==== Теория ​====+===== Слайд =====
  
-==== Лабораторные работы:​ Развертывание стенда и kubernetes кластера ==== +  ​* https://docs.google.com/presentation/d/1x0pls2ClHYfdB3W3l6jb4If7e9vGpfDA/edit?​slide=id.p6#​slide=id.p6
- +
-  ​Разворачиваем стенд курса [[https://www.specialist.ru/course/yun2-b|Linux. Уровень 2. Администрирование сервисов и сетей]] или [[https://rutube.ru/​video/​18b52d9721f7464b4485fec7d894e8ca/​|Развертывание стенда дома (смотреть с 13-й минуты)]]+
  
 ==== 1.1 Схема стенда,​ импорт,​ настройка и запуск VM gate и server ==== ==== 1.1 Схема стенда,​ импорт,​ настройка и запуск VM gate и server ====
Line 70: Line 68:
  
 <​code>​ <​code>​
-server# sed -i -e '​s/​docker.ru/​yandex.ru/​g'​ /​etc/​apt/​sources.list 
- 
 server# apt update server# apt update
 </​code>​ </​code>​
Line 84: Line 80:
   * Настройка сервера DHCP на gate   * Настройка сервера DHCP на gate
 <​code>​ <​code>​
-gate:~# ###git -C conf/ pull 
- 
 gate:~# sh conf/​dhcp.sh gate:~# sh conf/​dhcp.sh
 </​code>​ </​code>​
Line 123: Line 117:
 </​code>​ </​code>​
  
-===== Практикум ​=====+==== Практикум ====
  
   * [[https://​val.bmstu.ru/​~val/​pract/​dev3/​dev3_mod1_pract.mp4|Запись практикума]] (длительность:​ 41 минута)   * [[https://​val.bmstu.ru/​~val/​pract/​dev3/​dev3_mod1_pract.mp4|Запись практикума]] (длительность:​ 41 минута)
 +
 ===== Модуль 2: Развертывание приложений в кластере Kubernetes ===== ===== Модуль 2: Развертывание приложений в кластере Kubernetes =====
 +
 +===== Слайд =====
 +
 +  * https://​docs.google.com/​presentation/​d/​1x0pls2ClHYfdB3W3l6jb4If7e9vGpfDA/​edit?​slide=id.p7#​slide=id.p7
  
 ==== 2.1 Развертывание Keycloak ==== ==== 2.1 Развертывание Keycloak ====
Line 258: Line 257:
   * Настройка [[Сервис Keycloak#​Аутентификация пользователей WEB приложения]] через Keycloak   * Настройка [[Сервис Keycloak#​Аутентификация пользователей WEB приложения]] через Keycloak
   * Создать УЗ user1 через [[Инструмент GitLab#REST API интерфейс]] и связать через [[Инструмент GitLab#​Клиент OpenID]]   * Создать УЗ user1 через [[Инструмент GitLab#REST API интерфейс]] и связать через [[Инструмент GitLab#​Клиент OpenID]]
 +
 +=== Практикум ===
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev3/​dev3_mod2_pract_path2.mp4|Запись практикума]] (длительность:​ 28 минут)
 +
  
 ==== 2.3 Стратегии развертывания и масштабирование нагрузки ==== ==== 2.3 Стратегии развертывания и масштабирование нагрузки ====
Line 302: Line 306:
  
   * Преподаватель демонстрирует добавление HTTPS в [[Система Kubernetes#​Gateway]] с использованием [[Система Kubernetes#​cert-manager]]   * Преподаватель демонстрирует добавление HTTPS в [[Система Kubernetes#​Gateway]] с использованием [[Система Kubernetes#​cert-manager]]
 +
 +=== Практикум ===
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev3/​dev3_mod2_pract_path3.mp4|Запись практикума]] (длительность:​ 14 минуты)
 +
  
 ==== 2.4 ArgoCD и универсальный Helm Chart ==== ==== 2.4 ArgoCD и универсальный Helm Chart ====
Line 349: Line 358:
 ... 1.1 -> 1.2 ... ... 1.1 -> 1.2 ...
  
-client1$ curl https://​htwebd.corp13.un+client1$ curl https://​htwebd.corpX.un
  
 kube1# kubectl delete ns my-ns kube1# kubectl delete ns my-ns
Line 374: Line 383:
 kube1:​~/​webd-k8s#​ cp uni-webd-chart/​values.yaml apps/​ehwebd/​ kube1:​~/​webd-k8s#​ cp uni-webd-chart/​values.yaml apps/​ehwebd/​
  
 +kube1:​~/​webd-k8s#​ cat apps/​ehwebd/​values.yaml
 +...
 +  repository: brndnmtthws/​nginx-echo-headers
 +...
 +  targetPort: 8080
 ... ...
  
 kube1:​~/​webd-k8s#​ helm template my-ehwebd uni-webd-chart/​ -f apps/​ehwebd/​values.yaml -f env.yaml kube1:​~/​webd-k8s#​ helm template my-ehwebd uni-webd-chart/​ -f apps/​ehwebd/​values.yaml -f env.yaml
 </​code>​ </​code>​
 +
 +=== Практикум ===
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev3/​dev3_mod2_pract_path4.mp4|Запись практикума]] (длительность:​ 26 минут)
 +
  
 ===== Модуль 3: Безопасность в DevOps ===== ===== Модуль 3: Безопасность в DevOps =====
 +
 +===== Слайд =====
 +
 +  * https://​docs.google.com/​presentation/​d/​1x0pls2ClHYfdB3W3l6jb4If7e9vGpfDA/​edit?​slide=id.p8#​slide=id.p8
  
 ==== 3.1 Интеграция инструментов безопасности в CI/CD ==== ==== 3.1 Интеграция инструментов безопасности в CI/CD ====
Line 410: Line 433:
 kube1:​~/​webd-k8s#​ cp uni-webd-chart/​values.yaml apps/​pywebd/​ kube1:​~/​webd-k8s#​ cp uni-webd-chart/​values.yaml apps/​pywebd/​
  
 +kube1:​~/​webd-k8s#​ cat apps/​pywebd/​values.yaml
 +...
 +  PYWEBD_DOC_ROOT:​ /​home/​myuser/​www/​
 +...
 +    - mkdir -p /​home/​myuser/​www/​ && echo \"<​h1>​Hello from pywebd on $(hostname)</​h1>​\"​ > /​home/​myuser/​www/​index.html
 ... ...
  
 kube1:​~/​webd-k8s#​ helm template my-pywebd uni-webd-chart/​ -f apps/​pywebd/​values.yaml -f env.yaml kube1:​~/​webd-k8s#​ helm template my-pywebd uni-webd-chart/​ -f apps/​pywebd/​values.yaml -f env.yaml
 </​code>​ </​code>​
 +
 +=== Практикум ===
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev3/​dev3_mod3_pract_path1.mp4|Запись практикума]] (длительность:​ 16 минут)
 +
  
 ==== 3.2 Управление секретами ==== ==== 3.2 Управление секретами ====
Line 427: Line 460:
   * [[Система Kubernetes#​Работа с чувствительными данными (секретами)]] в Helm   * [[Система Kubernetes#​Работа с чувствительными данными (секретами)]] в Helm
  
 +=== Практикум ===
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev3/​dev3_mod3_pract_path2.mp4|Запись практикума]] (длительность:​ 17 минут)
  
 ==== 3.3 Управление доступом в Kubernetes ==== ==== 3.3 Управление доступом в Kubernetes ====
Line 439: Line 475:
   * Устанавливаем [[Система Kubernetes#​Kubernetes Dashboard]] с client1   * Устанавливаем [[Система Kubernetes#​Kubernetes Dashboard]] с client1
  
-  * Преподаватель ​демонстрирует интеграцию с внешними системами идентификации ​для ​[[Управление доступом в Kubernetes]]+  * Можно продемонстрировать интеграцию с внешними системами идентификации ​[[Управление доступом в Kubernetes#Шаг 7. Использование OpenID Connect]]
  
 SecurityContext/​NetworkPolicy SecurityContext/​NetworkPolicy
Line 452: Line 488:
   * [[Система Kubernetes#​Использование NetworkPolicy]] для управления доступом в NS кластера   * [[Система Kubernetes#​Использование NetworkPolicy]] для управления доступом в NS кластера
  
 +=== Практикум ===
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev3/​dev3_mod3_pract_path3.mp4|Запись практикума]] (длительность:​ 23 минуты)
  
 ==== 3.4 Использование IDS/IPS в Kubernetes ==== ==== 3.4 Использование IDS/IPS в Kubernetes ====
Line 491: Line 530:
 root@my-ubuntu:/#​ snort -i eth0 -S HOME_NET=[0.0.0.0/​0] -c /​etc/​snort/​snort.conf # -A console ​ root@my-ubuntu:/#​ snort -i eth0 -S HOME_NET=[0.0.0.0/​0] -c /​etc/​snort/​snort.conf # -A console ​
 </​code>​ </​code>​
 +
 +=== Практикум ===
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev3/​dev3_mod3_pract_path4.mp4|Запись практикума]] (длительность:​ 17 минут)
  
 ===== Модуль 4: Восстановление кластера после сбоев ===== ===== Модуль 4: Восстановление кластера после сбоев =====
 +
 +===== Слайд =====
 +
 +  * https://​docs.google.com/​presentation/​d/​1x0pls2ClHYfdB3W3l6jb4If7e9vGpfDA/​edit?​slide=id.p9#​slide=id.p9
  
 ==== 4.1 Мониторинг кластера ==== ==== 4.1 Мониторинг кластера ====
Line 505: Line 552:
   * [[Сервис VictoriaMetrics]]   * [[Сервис VictoriaMetrics]]
  
 +=== Практикум ===
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev3/​dev3_mod4_pract_path1.mp4|Запись практикума]] (длительность:​ 35 минут)
  
 ==== 4.2 Резервное копирование и восстановление ==== ==== 4.2 Резервное копирование и восстановление ====
Line 511: Line 561:
   * [[Сервис PostgreSQL#​Резервное копирование и восстановление]] PostgreSQL (Вебинар:​ [[Все что должен знать DevOps про PostgreSQL]])   * [[Сервис PostgreSQL#​Резервное копирование и восстановление]] PostgreSQL (Вебинар:​ [[Все что должен знать DevOps про PostgreSQL]])
   * [[Система Kubernetes#​Отладка etcd]]   * [[Система Kubernetes#​Отладка etcd]]
 +
 +=== Практикум ===
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev3/​dev3_mod4_pract_path2.mp4|Запись практикума]] (длительность:​ 8 минут)
 +
  
 ==== 4.3 Восстановление кластера после сбоев ==== ==== 4.3 Восстановление кластера после сбоев ====
Line 540: Line 595:
  
   * Проверка состояния кластера и приложений   * Проверка состояния кластера и приложений
 +
 +=== Практикум ===
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev3/​dev3_mod4_pract_path3.mp4|Запись практикума]] (длительность:​ 15 минут)
 +
  
 ==== 4.4 Обновление кластера ==== ==== 4.4 Обновление кластера ====
Line 545: Line 605:
   * [[Система Kubernetes#​Обновление кластера через kubespray]]   * [[Система Kubernetes#​Обновление кластера через kubespray]]
   * Проверка состояния кластера и приложений   * Проверка состояния кластера и приложений
 +
 +=== Практикум ===
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev3/​dev3_mod4_pract_path4.mp4|Запись практикума]] (длительность:​ 4 минуты)
 +
  
 ===== Примеры конфигураций ===== ===== Примеры конфигураций =====
devsecops_и_промышленные_решения.1781506360.txt.gz · Last modified: 2026/06/15 09:52 by val