Методологии 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 Тема лабораторной работы
Вопросы