Table of Contents

DevOps1. Основные инструменты 2025

Программа курса

Модуль 0. Подготовка к занятию

  1. Узнать и записать свой номер стенда: X=
  2. Сообщить его в чат преподавателю

Модуль 1: Введение и развертывание стенда

Теория

Лабораторные работы: Развертывание стенда и инициализация репозитория Git

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

# sh net_gate.sh

# init 6
# sh net_server.sh

# init 6

1.3 Инициализация репозитория Git

server:~# git -C conf/ pull

server:~# sh conf/dns.sh
# cat /etc/resolv.conf
search corpX.un
nameserver 192.168.X.10
# nslookup ns

1.4 Работа с репозиторием Git

!!! Методическая рекомендация, запустить установку Docker (только на server) из лабораторной работы 2.1

server# cat /etc/bind/corpX.un
...
webd            A       192.168.X.10

Вопросы

  1. Перечислите и объясните команды git

Модуль 2: Docker

Теория

Лабораторные работы: Установка docker и работа с контейнерами

2.1 Собираем docker контейнер

!!! Методическая рекомендация, запустить установку Golang из этой лабораторной работы

!!! Методическая рекомендация, запустить установку docker-compose из лабораторной работы 2.2

Приложение на Python

!!! Методическая рекомендация, запустить установку Vagrant из лабораторной работы 3.1

Приложение на Go

!!! Методическая рекомендация, запустить установку GitLab из лабораторной работы 4.1

~/gowebd# apt purge golang-go; apt autoremove -y

2.2 Связываем и деплоим контейнеры с помощью docker-compose

Вопросы

  1. Зачем нужен Docker?
  2. Чем Docker отличается от LXC?
  3. Чем Docker контейнер отличается от Docker образа?
  4. Как ПО в Docker контейнере может взаимодействовать с системой и другими контейнерами?
  5. Зачем нужен Dockerfile?
  6. Зачем “запихивать” сразу много инструкций в команду RUN?
  7. Зачем нужен docker-compose?

Модуль 3. Инфраструктура как код

Теория

Лабораторные работы: Управление инфраструктурой

3.1 Управление инфраструктурой с использованием Vagrant

!!! Методическая рекомендация, запустить установку Ansible из лабораторной работы 3.2

3.2 Управление инфраструктурой с использованием Ansible

Вопросы

  1. Что общего и в чем отличие между Ansible, Vagrant и Terraform?
  2. Что означает термин Provision в Vagrant?
  3. Что такое module, playbook, role в Ansible?
  4. Назовите каталоги в роли Ansible
  5. Что должно быть установлено на целевой системе для управления через Ansible?
  6. Каким образом Vagrant управляет VM?
  7. Как реализован Ansible provision в Vagrant?

Модуль 4. Continuous Integration

Теория

Лабораторные работы: От Git к CI/CD

4.1 Обзор GitLab

!!! Методическая рекомендация, скачать gitlab-runner из лабораторной работы 4.2

4.2 Запуск пайплайнов из .gitlab-ci в gitlab-runners

Вопросы

  1. Чем отличается GitLab от Git?
  2. Для чего нужен GitLab Runner?
  3. Как называется файл для CI/CD в GitLab?

Модуль 5. Обзор задач QA

Теория

Лабораторные работы: Задачи тестирования

5.1 Ручное тестирование функциональности и работа с ветками проекта

5.2 Тестирование в этапах развертывания образа приложения в Docker среде

!!! Методическая рекомендация, включить GitLab Docker Registry из этой лабораторной работы

!!! Методическая рекомендация, запустить установку minikube из лабораторной работы 6.1

5.3 Тестирование в процессе CI и управление версиями

Вопросы

  1. Что такое “ветка” в Git и почему переименовали master в main?
  2. Из каких частей состоит имя образа?
  3. Как работает DooD и DinD?
  4. Что такое Linter?
  5. Что такое Smoke test?

Модуль 6. Kubernetes

Теория

Лабораторные работы: Работа с minikube, cоздание deployment и service

6.1 Установка minikube

6.2 Создание deployment и service

server# cp -v /home/gitlab-runner/.minikube/cache/linux/amd64/v*/kubectl /usr/local/bin/

Вопросы

Модуль 7. Дополнительные материалы

Administrator@RAZLIV_48 ~/conf/vagrant/nodes (master)

λ vagrant halt