====== 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