Методологии DevOps
Ссылка на вебинар
Программа курса
Примерный план
Развертывание стенда
Запустите с правами Administrator
C:\cmder\cmder.exe
bash
cd
git clone http://val.bmstu.ru/unix/conf.git
cd conf/virtualbox/
./setup.sh X 8
 
Историческая ретроспектива систем контроля версий и CI/CD
 Изучаем/вспоминаем 
Сервис Git на примере каталога /etc ПЕРЕД и после установки 
Сервис DHCP в систему gate 
 
 
 Обсуждаем общий репозиторий для всех систем, но весь /etc туда - плохо
 
- 
 
- 
 
 
Современное решение CI/CD на примере GitLab
Часть 1: Знакомимся с GitLab (Если GitLab к этому времени не установился, начать тему Vagrant)
- 
 
 Создание учетной записи student в GitLab
 
- 
 
 Подключаемся как student, New Blank Project (Project name: dhcp, без README)
 
- 
 
 Редактируем dhcpd.conf в GitLab IDE (Commit to master branch)
 
Часть 2: Знакомимся с GitLab CI/CD
- 
 
- 
 
- 
 
- 
 
 Используем 
Пакет sudo для разрешений пользователя gitlab-runner
 
 
- 
 
Часть 3: Работа с ветками в GitLab CI/CD (в теме Ansible)
- 
 
 Включаем 
Сервис Git для каталога openvpn1 и загружаем его в новый репозиторий openvpn1 в GitLab (пользуясь инструкцией к проекту, можно переименовать ветку master→main)
 
 
 Загружаем репозиторий openvpn1 на локальную систему в 
Cmder, открываем проект в npp
 
 
- 
 
 Используем GitLab CI/CD 
Пример shell ansible для сервиса OpenVPN с ручным тестированием тестовой конфигурации
 
 
 
Инфраструктура как код, при построении ландшафта на примере Vagrant
Инфраструктура как код, для управления уровнем приложений на примере Аnsible
Разработка и распространение ПО с использованием контейнеров на примере Docker
- 
 
- 
 
- 
 
- 
 
external-host# echo "GET http://172.16.1.13" | vegeta attack -duration=10s -rate=200 | vegeta report
root@node1:~# tail -f /var/log/syslog
 Разрабатываем/знакомимся с 
Технология Docker (без sftp) на gitlab-runner@server (удобно для тестов CI/CD из командной строки)
 
 
- 
 
- 
 
- 
 
- 
 
ТЗ: Горизонтально масштабируем веб сервер используя общий каталог на node1,2,3
- 
 
- 
 
 Используя vagrant ansible provisioning устанавливаем docker и docker-compose на node1,2,3
 
- 
 
 Готовимся масштабировать добавив в проект файл 
docker-compose с ссылкой на образ
 
 
- 
 
 Считаем, что пришлось делать “вручную”: выбирать узлы, монтировать nfs, загружать файл docker-compose, выяснять порты - выход: 
Система Kubernetes 
 
 
Разработка и распространение ПО с использованием Kubernetes
- 
 
- 
 
- 
 
- 
 
 Автоматизируем deploy используя 
GitLab CI/CD, сталкиваемся с необходимостью править версию в манифесте, рассмотрев вариант envsubst (здесь же можно и keepalived и нагрузочное тестирование и автоматическое увеличение подов …) приходим к Helm
 
 
 Изучаем тему 
Ingress для minikube и используем 
Helm для его развертывании в кластере
 
 
 Изучаем тему 
Helm на примере разработки чарта для приложения webd
 
 
- 
 
 
ToDo
 Хранение общих файлов (сертификатов/ключей) в gitlab
 
 Тестирование ansible playbook
 
 
Методические приемы
 Преподаватель создает основы проекта копипастингом из методички, слушатели загружают себе, помещают в свой gitlab и проводят эксперименты CI/CD
 
 
Модуль 0. Подготовка стенда в классе
Модуль 1: Развертывание IT инфраструктуры
Теория
Лабораторные работы: Развертывание объектов мониторинга
1.1 Развертывание системы gate
# sh net_gate.sh
# init 6
# cat /etc/bind/corp13.un
$TTL      3h
@         SOA     ns root.ns  1 1d 12h 1w 3h
          NS      ns
          A       192.168.13.1
          MX 1    server
ns        A       192.168.13.1
gate      A       192.168.13.1
server    A       192.168.13.1
node1     A       192.168.13.10
node2     A       192.168.13.20
node3     A       192.168.13.30
 
1.2 Инфраструктура как код
Вопросы
Модуль 2: Использование контейнеров
Теория
Лабораторные работы: Использование контейнеров
2.1 Использование контейнеров
Вопросы
Модуль 3: Использование GitLab
Теория
Лабораторные работы: Использование GitLab
3.1 Использование GitLab
Вопросы
Модуль N: Тема модуля
Теория
Лабораторные работы: Тема лабораторных работ
N.1 Тема лабораторной работы
Вопросы
Модуль N: Тема модуля
Теория
Лабораторные работы: Тема лабораторных работ
N.1 Тема лабораторной работы
Вопросы
Модуль N: Тема модуля
Теория
Лабораторные работы: Тема лабораторных работ
N.1 Тема лабораторной работы
Вопросы