====== DevOps1. Основные инструменты 2025 ======
===== Программа курса =====
* [[https://www.specialist.ru/course/kuber|DevOps. Уровень 1. Инфраструктура как код, основные инструменты]]
* [[https://www.specialist.ru/track/dp-devops|ДП-ДЕВОПС-М]]
===== Модуль 0. Подготовка к занятию =====
- Узнать и записать свой номер стенда: X=
- Сообщить его в чат преподавателю
===== Модуль 1: Введение и развертывание стенда =====
==== Теория ====
* [[https://dzen.ru/a/ZVIBk2kT0ntemhwK|∞ Дорожная карта DevOps-инженера в 2023 году]]
* Ссылки в разделе [[Сервис Git]]
==== Лабораторные работы: Развертывание стенда и инициализация репозитория Git ====
* Разворачиваем стенд курса [[https://www.specialist.ru/course/yun2-b|Linux. Уровень 2. Администрирование сервисов и сетей]] или [[https://rutube.ru/video/18b52d9721f7464b4485fec7d894e8ca/|Развертывание стенда дома (смотреть с 13-й минуты)]]
=== 1.1 Схема стенда, импорт, настройка и запуск VM gate и server ===
Запустите с правами Administrator
C:\cmder\cmder.exe
bash
cd
test -d conf && rm -r conf
git clone http://val.bmstu.ru/unix/conf.git
cd conf/virtualbox/
!!! 8 - это номер курса, вместо X укажите Ваш номер стенда, если не знаете его, спросите преподавателя !!!
./setup.sh X 8
=== 1.2 Настройка сети VM gate и server ===
* [[Настройка стендов слушателей#Настройка виртуальных систем Unix]] с использованием [[Настройка стендов слушателей#Скрипты автоконфигурации]]
* gate
# sh net_gate.sh
# init 6
* server
# sh net_server.sh
# init 6
* Создать в Putty профили gate, server и подключиться
=== 1.3 Инициализация репозитория Git ===
* [[Сервис Git]], команды init, add, commit для каталога /etc на server
* [[Финальная настройка DNS сервера]]
server:~# sh conf/dns.sh
* Настройка клиента DNS на gate и server
# cat /etc/resolv.conf
search corpX.un
nameserver 192.168.X.10
# nslookup ns
=== 1.4 Работа с репозиторием Git ===
server# cat /etc/bind/corpX.un
...
webd A 192.168.X.10
* [[Сервис Git]], команды log, show, diff, reset
==== Вопросы ====
- Перечислите и объясните команды git
===== Модуль 2: Docker =====
==== Теория ====
* Ссылки в разделе [[Технология Docker]]
* [[https://ru.wikipedia.org/wiki/Микросервисная_архитектура|Микросервисная архитектура]]
==== Лабораторные работы: Установка docker и работа с контейнерами ====
=== 2.1 Причины использования Docker ===
* Рассмотрим [[Сервис HTTP#Пример HTTP диалога] и "разработку" [[Средства программирования shell#Web сервер на shell|Web приложения]]
* [[Сервис HTTP#Нагрузочное тестирование]] с использованием curl
=== 2.2 Собираем docker контейнер ===
* Удаляем приложение с host системы
server# apt purge inetutils-inetd
* [[Технология Docker#Установка]] Docker
* [[Технология Docker#Создание образа для приложения вручную]]
* [[Технология Docker#Запуск в режиме демона и подключение к контейнеру]]
=== 2.3 Связываем и деплоим контейнеры с помощью docker-compose ===
* [[Технология Docker#Использование готовых образов приложений]]
* Использование [[Технология Docker#docker-compose]]
* Использование [[Сервис HTTP#Прокси "красивого" URL в приложение (пример 3)|Nginx]] для балансировки нагрузки
* Добавляем сообщения про ip и hostname (вручную) и журнал (следующая лабораторная)
=== 2.4 Создание образа для приложения с использованием Dockerfile ===
* Собираем образ [[Технология Docker#Приложение bash webd]] (добавляем журнал)
* [[Язык программирования Python#Виртуальная среда Python]]
* Создаем [[Язык программирования Python#Web приложение]] на Python
* Собираем образ [[Технология Docker#Приложение python pywebd]]
* [[Технология Docker#Запуск в режиме демона и подключение к контейнеру]]
* [[Технология Docker#Приложение golang gowebd]]
==== Вопросы ====
- Перечислите преимущества использования Docker