devops1._основные_инструменты

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
devops1._основные_инструменты [2025/05/30 09:14]
val [Лабораторные работы: Задачи тестирования]
devops1._основные_инструменты [2025/07/31 10:18] (current)
val [Теория]
Line 19: Line 19:
  
   * [[https://​landscape.cncf.io/​]]   * [[https://​landscape.cncf.io/​]]
-  * [[https://​dzen.ru/​a/​ZVIBk2kT0ntemhwK|∞ Дорожная карта DevOps-инженера в 2023 году]]+  * [[https://​dzen.ru/​a/​ZVIBk2kT0ntemhwK|Дорожная карта DevOps-инженера в 2023 году]]
   * Ссылки в разделе [[Сервис Git]]   * Ссылки в разделе [[Сервис Git]]
- 
  
 ==== Лабораторные работы:​ Развертывание стенда и инициализация репозитория Git ==== ==== Лабораторные работы:​ Развертывание стенда и инициализация репозитория Git ====
Line 92: Line 91:
 !!! Методическая рекомендация,​ запустить установку Docker (только на server) из лабораторной работы 2.1 !!! Методическая рекомендация,​ запустить установку Docker (только на server) из лабораторной работы 2.1
  
 +  * Дбавляем A запись в DNS, понадобится в финальной работе (практикум)
 <​code>​ <​code>​
 server# cat /​etc/​bind/​corpX.un server# cat /​etc/​bind/​corpX.un
Line 100: Line 100:
  
   * [[Сервис Git]], команды git -C /etc/ ..., log, show, diff, reset   * [[Сервис Git]], команды git -C /etc/ ..., log, show, diff, reset
 +
 +===== Практикум =====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev1/​dev1_mod1_pract.mp4|Запись практикума]] (длительность:​ 16 минут)
 +
 ==== Вопросы ==== ==== Вопросы ====
  
Line 137: Line 142:
   * [[Технология Docker#​Анализ параметров запущенного контейнера]]   * [[Технология Docker#​Анализ параметров запущенного контейнера]]
  
-== 2.1.3 Приложение на Go ==+== 2.1.3 Приложение на Go (практикум) ​==
  
 !!! Методическая рекомендация,​ запустить установку GitLab из лабораторной работы 4.1 !!! Методическая рекомендация,​ запустить установку GitLab из лабораторной работы 4.1
Line 162: Line 167:
  
   * Можно показать "​кубернетес"​ - [[Сервис HTTP#​Прокси "​красивого"​ URL в приложение (пример 3)|Использование прокси Nginx]] для доступа к приложению (если установился GitLab)   * Можно показать "​кубернетес"​ - [[Сервис HTTP#​Прокси "​красивого"​ URL в приложение (пример 3)|Использование прокси Nginx]] для доступа к приложению (если установился GitLab)
 +
 +===== Практикум =====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev1/​dev1_mod2_pract.mp4|Запись практикума]] (длительность:​ 11 минут)
  
 ==== Вопросы ==== ==== Вопросы ====
Line 188: Line 197:
 !!! Методическая рекомендация,​ запустить установку Ansible из лабораторной работы 3.2 !!! Методическая рекомендация,​ запустить установку Ansible из лабораторной работы 3.2
  
-  * Добавляем DNS записи nodeN A 192.168.X.200+N в [[Сервис DNS#​Настройка мастер сервера зоны corpX.un]] +  * Добавляем DNS записи nodeN A 192.168.X.200+N в [[Сервис DNS#​Настройка мастер сервера зоны corpX.un]] ​(практикум) 
-  * Обзор команд [[Технология VirtualBox]] +  * Обзор команд [[Технология VirtualBox]]  
-  * Обзор [[Технология Vagrant]] +  * Обзор ​и установка ​[[Технология Vagrant]] ​(практикум) 
-  * Развертываем с использованием [[Технология Vagrant#​Multi-Machine Vagrant Environments]] узлы кластера node1,2,3+  * Развертываем с использованием [[Технология Vagrant#​Multi-Machine Vagrant Environments]] узлы кластера node1,​2,​3 ​(практикум)
  
 === 3.2 Управление инфраструктурой с использованием Ansible === === 3.2 Управление инфраструктурой с использованием Ansible ===
  
   * Общие принципы и модели управления (Push and Pull)   * Общие принципы и модели управления (Push and Pull)
-  * Ansible - [[Сервис Ansible#​Установка на управляющей системе]] +  * Ansible - [[Сервис Ansible#​Установка на управляющей системе]] ​(практикум) 
-  * [[Сервис Ansible#​Настройка групп управляемых систем]] +  * [[Сервис Ansible#​Настройка групп управляемых систем]] ​(практикум) 
-  * [[Сервис Ansible#​Настройка транспорта ssh]] с [[Сервис SSH#​Парольная аутентификация]] +  * [[Сервис Ansible#​Настройка транспорта ssh]] с [[Сервис SSH#​Парольная аутентификация]] ​(практикум) 
-  * [[Сервис Ansible#​Использование модулей]] для тестирования связи с управляемыми системами +  * [[Сервис Ansible#​Использование модулей]] для тестирования связи с управляемыми системами ​(практикум) 
-  * Установка Docker с помощью [[Сервис Ansible#​Использование playbook|Ansible playbook]] на node1,2,3 (лучше во время перерыва)+  * Установка Docker с помощью [[Сервис Ansible#​Использование playbook|Ansible playbook]] на node1,2,3 (лучше во время перерыва) (практикум)
   * [[Сервис Ansible#​Использование шаблонов]] Jinja в playbook для установки Nginx (на gate, по окончании демонстрации удалить!!)   * [[Сервис Ansible#​Использование шаблонов]] Jinja в playbook для установки Nginx (на gate, по окончании демонстрации удалить!!)
   * Обсудить варианты [[Сервис Ansible#​Использование handlers]]   * Обсудить варианты [[Сервис Ansible#​Использование handlers]]
-  * Развертывание кластера приложения с [[Сервис Ansible#​Использование ролей]] Ansible+  * Развертывание кластера приложения с [[Сервис Ansible#​Использование ролей]] Ansible ​(практикум,​ в конце запустить установку GitLab) 
 + 
 +===== Практикум ===== 
 + 
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev1/​dev1_mod3_pract.mp4|Запись практикума]] (длительность:​ 19 минут)
  
 ==== Вопросы ==== ==== Вопросы ====
Line 227: Line 240:
 ==== Лабораторные работы:​ От Git к CI/CD ==== ==== Лабораторные работы:​ От Git к CI/CD ====
  
-=== 4.1 Обзор GitLab ===+=== 4.1 Обзор GitLab ​(практикум) ​===
  
   * [[Инструмент GitLab#​Установка из репозитория]]   * [[Инструмент GitLab#​Установка из репозитория]]
Line 234: Line 247:
  
   * [[Инструмент GitLab#​Управление пользователями]] (назначить УЗ student администратором)   * [[Инструмент GitLab#​Управление пользователями]] (назначить УЗ student администратором)
-  * Создаем новый репозиторий (Project name: openvpn1, Private, без README) в GitLab ​+  * Создаем новый репозиторий (Project name: openvpn1, Private, без README) в GitLab
   * Пользуясь инструкцией к проекту,​ включаем [[Сервис Git]] для каталога openvpn1 и помещаем его в GitLab   * Пользуясь инструкцией к проекту,​ включаем [[Сервис Git]] для каталога openvpn1 и помещаем его в GitLab
  
-=== 4.2 Запуск пайплайнов из .gitlab-ci в gitlab-runners ===+=== 4.2 Запуск пайплайнов из .gitlab-ci в gitlab-runners ​(практикум) ​===
  
   * [[Инструмент GitLab#​Установка из пакета]] GitLab Runner на server и его [[Инструмент GitLab#​Регистрация]] с меткой **ansible** и исполнителем **shell**   * [[Инструмент GitLab#​Установка из пакета]] GitLab Runner на server и его [[Инструмент GitLab#​Регистрация]] с меткой **ansible** и исполнителем **shell**
  
   * Используя GitLab Pipeline Editor добавляем в проект openvpn1 [[Инструмент GitLab#​Пример shell ansible]] Pipeline и наблюдаем "​выкатку"​ в "​прод"​ после Commit в ветку main   * Используя GitLab Pipeline Editor добавляем в проект openvpn1 [[Инструмент GitLab#​Пример shell ansible]] Pipeline и наблюдаем "​выкатку"​ в "​прод"​ после Commit в ветку main
 +
 +===== Практикум =====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev1/​dev1_mod4_pract.mp4|Запись практикума]] (длительность:​ 13 минут)
  
 ==== Вопросы ==== ==== Вопросы ====
Line 284: Line 301:
  
   * Размещение образа приложения в Registry   * Размещение образа приложения в Registry
-  * Включаем [[Инструмент GitLab#​GitLab Docker Registry]] +  * Включаем [[Инструмент GitLab#​GitLab Docker Registry]] ​(практикум) 
-  * Включаем [[Технология Docker#​Insecure Private Registry]] и [[Технология Docker#​Аутентификация в Registry]] на gate +  * Включаем [[Технология Docker#​Insecure Private Registry]] и [[Технология Docker#​Аутентификация в Registry]] на gate (практикум) 
-  * Создаем (Public, без README) проект gowebd +  * Создаем (Public, без README) проект gowebd ​(практикум) 
-  * Cохраняем образ, [[Технология Docker#​Использование Private Registry]]+  * Cохраняем образ, [[Технология Docker#​Использование Private Registry]] ​(практикум)
  
 !!! Методическая рекомендация,​ запустить установку minikube из лабораторной работы 6.1 !!! Методическая рекомендация,​ запустить установку minikube из лабораторной работы 6.1
Line 295: Line 312:
 === 5.3 Тестирование в процессе CI и управление версиями === === 5.3 Тестирование в процессе CI и управление версиями ===
  
-  * Проводим [[Инструмент GitLab#​Установка в виде контейнера]] gitlab-runner на gate +  * Проводим [[Инструмент GitLab#​Установка в виде контейнера]] gitlab-runner на gate (практикум) 
-  * Используем [[Инструмент GitLab#​Регистрация DooD]] для добавления runner в проект gowebd ​+  * Используем [[Инструмент GitLab#​Регистрация DooD]] для добавления runner в проект gowebd ​(практикум)
  
-  * Отключаем gowebd->​CI/​CD Settings->​Auto DevOps +  * Отключаем gowebd->​CI/​CD Settings->​Auto DevOps ​(практикум) 
-  * Добавляем в папку gowebd [[Инструмент GitLab#​Пример CI с использованием контейнеров]] +  * Добавляем в папку gowebd [[Инструмент GitLab#​Пример CI с использованием контейнеров]] ​стадии build test push (практикум) 
-  * Используя инструкции из GitLab добавляем папку в проект и наблюдаем сборку образа с тэгом commit hash+  * Используя инструкции из GitLab добавляем папку в проект и наблюдаем сборку образа с тэгом commit hash (практикум)
   * Можно продемонстрировать Smoke test, заменив порт в коде ​   * Можно продемонстрировать Smoke test, заменив порт в коде ​
  
Line 314: Line 331:
   * Можно продемонстрировать Lint test, добавив лишнюю переменную в коде   * Можно продемонстрировать Lint test, добавив лишнюю переменную в коде
  
-  * Используем Git тэги ([[Сервис Git#​Обновление сетевого репозитория из локального]] или Code->​Tags) для указания версии Docker образов+  * Используем Git тэги ([[Сервис Git#​Обновление сетевого репозитория из локального]] или Code->​Tags) для указания версии Docker образов ​(практикум,​ в конце запустить установку MiniKube) 
 + 
 +===== Практикум ===== 
 + 
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev1/​dev1_mod5_pract.mp4|Запись практикума]] (длительность:​ 23 минуты)
  
 ==== Вопросы ==== ==== Вопросы ====
Line 335: Line 356:
 === 6.1 Установка minikube === === 6.1 Установка minikube ===
  
-  * Для доступа к репозиторию,​ понадобится включить [[Сервисы Gateway и routing]] +  * Для доступа к репозиторию,​ понадобится включить [[Сервисы Gateway и routing]] ​(практикум) 
-  * [[Система Kubernetes#​Установка minikube]] для gitlab-runner@server (можно,​ если будет время, показать CD)+  * [[Система Kubernetes#​Установка minikube]] для gitlab-runner@server (можно,​ если будет время, показать CD) (практикум)
  
 === 6.2 Создание deployment и service === === 6.2 Создание deployment и service ===
  
-  * Изучаем [[Система Kubernetes#​Базовые объекты k8s]] - [[Система Kubernetes#​Deployment]] и [[Система Kubernetes#​Service]] +  * Изучаем [[Система Kubernetes#​Базовые объекты k8s]] - [[Система Kubernetes#​Deployment]] и [[Система Kubernetes#​Service]] ​(практикум) 
-  * Для понимания работы [[Система Kubernetes#​Ingress]] (будет в следующем курсе),​ можно продемонстрировать использование [[Сервис HTTP#​Прокси "​красивого"​ URL в приложение (пример 3)|Nginx]] для доступа к приложению webd в minikube с хост системы ​+  * Для понимания работы [[Система Kubernetes#​Ingress]] (будет в следующем курсе),​ можно продемонстрировать использование [[Сервис HTTP#​Прокси "​красивого"​ URL в приложение (пример 3)|Nginx]] для доступа к приложению webd в minikube с хост системы ​(практикум)
  
-  * Если есть 30 минут, можно показать CD через envsubst "**3.3 Разворачивание нужной версии приложения в kubernetes**"​ из Девопс2 ​+  * Если есть 30 минут, можно показать CD через envsubst "​**Развертывание нужной версии приложения в kubernetes**"​ из Девопс2 ​
   * Понадобится назначить метку k8s-deploy ранеру и   * Понадобится назначить метку k8s-deploy ранеру и
 <​code>​ <​code>​
Line 349: Line 370:
 </​code>​ </​code>​
   * Можно показать все, используя Web IDE   * Можно показать все, используя Web IDE
 +
 +===== Практикум =====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev1/​dev1_mod6_pract.mp4|Запись практикума]] (длительность:​ 13 минут)
 +
 ==== Вопросы ==== ==== Вопросы ====
  
Line 358: Line 384:
  
 ===== Модуль 7. Дополнительные материалы ===== ===== Модуль 7. Дополнительные материалы =====
 +
 +==== 7.1 Вход в Jenkins ====
  
   * [[Вход в Jenkins]] и процесс непрерывной интеграции для администратора Linux (выполняем работы с 00:05:30 до конца)   * [[Вход в Jenkins]] и процесс непрерывной интеграции для администратора Linux (выполняем работы с 00:05:30 до конца)
 +
 +==== 7.2 Зачем нужен Kubernetes ====
  
   * [[Зачем нужен Kubernetes]] (выполняем работы с 00:02:45 до 00:53:00 и с 01:08:33 до конца),​ понадобятся [[Средства программирования shell#​Ресурсы Web сервера на shell]]   * [[Зачем нужен Kubernetes]] (выполняем работы с 00:02:45 до 00:53:00 и с 01:08:33 до конца),​ понадобятся [[Средства программирования shell#​Ресурсы Web сервера на shell]]
 +
 +==== 7.3 Что должен знать DevOps про Python ====
 +
 +  * [[Все что должен знать DevOps про Python]]
 +
 +==== 7.4 Развертывание инфраструктуры с использованием Terraform ====
  
   * [[On-premise Terraform|Развертывание инфраструктуры в On-premise облаке с использованием Terraform]] (выполняем работы с 00:10:15 до 00:35:30 и с 00:40:45 до конца)   * [[On-premise Terraform|Развертывание инфраструктуры в On-premise облаке с использованием Terraform]] (выполняем работы с 00:10:15 до 00:35:30 и с 00:40:45 до конца)
devops1._основные_инструменты.1748585681.txt.gz · Last modified: 2025/05/30 09:14 by val