This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
devops1._основные_инструменты [2023/09/20 08:18] val [Лабораторные работы: Использование Vagrant] |
devops1._основные_инструменты [2024/04/16 10:47] (current) val [Лабораторные работы: Тема лабораторных работ] |
||
---|---|---|---|
Line 85: | Line 85: | ||
* !!! Заранее выполняем на server | * !!! Заранее выполняем на server | ||
* [[Переменные окружения#Установка переменных окружения]] http_proxy, https_proxy и no_proxy (только для ОО) | * [[Переменные окружения#Установка переменных окружения]] http_proxy, https_proxy и no_proxy (только для ОО) | ||
+ | |||
* Установку [[Инструмент Gitea]] | * Установку [[Инструмент Gitea]] | ||
- | * Установку [[Сервис JRE]] (и на gate) | + | * Установку [[Сервис JRE]] (на gate) |
* Установку [[Инструмент Jenkins]] !!! и установку плагинов !!! | * Установку [[Инструмент Jenkins]] !!! и установку плагинов !!! | ||
+ | |||
* Установку [[Сервис Ansible]] | * Установку [[Сервис Ansible]] | ||
* Cкачать deb пакет [[Инструмент GitLab#GitLab Runner]] | * Cкачать deb пакет [[Инструмент GitLab#GitLab Runner]] | ||
Line 111: | Line 113: | ||
* [[Сервис DHCP#Статистика DHCP сервера]] | * [[Сервис DHCP#Статистика DHCP сервера]] | ||
* [[Установка ПО из исходных текстов#Использование утилиты make]] (установить) | * [[Установка ПО из исходных текстов#Использование утилиты make]] (установить) | ||
- | * [[Модуль AppArmor#Определение наличия и правка профилей для служб]] !!! проверить, не качается ли что-то на server !!! | + | * [[Модуль AppArmor#Определение наличия и правка профилей для служб]] (удалить профиль) !!! перед перезагрузкой gate, проверить, не качается ли что-то на server !!! |
<code> | <code> | ||
gate# su - student | gate# su - student | ||
Line 132: | Line 134: | ||
* [[Инструмент Jenkins]] | * [[Инструмент Jenkins]] | ||
- | * [[https://youtu.be/FeD6VBY2Xss|Вход в CI/CD для Linux-админа]] | ||
=== 2.4 Знакомимся с GitLab CI/CD === | === 2.4 Знакомимся с GitLab CI/CD === | ||
+ | |||
+ | * [[https://youtu.be/FeD6VBY2Xss|Вебинар: Вход в CI/CD для Linux-админа]] | ||
+ | * [[https://habr.com/ru/articles/716454/|Статья: Самый простой пример CI/CD]] | ||
* http://server.corpX.un/ | * http://server.corpX.un/ | ||
Line 181: | Line 185: | ||
=== 3.2 Использование Ansible === | === 3.2 Использование Ansible === | ||
- | * [[Сервис Ansible]] openvpn, docker (только слушатели), можно addusers.yml для OpenVPN | + | * [[Сервис Ansible]], модуль apt на примере openvpn, playbook docker (только слушатели), можно addusers.yml (для OpenVPN) |
* Преподаватель импортирует систему Windows для тестирования OpenVPN | * Преподаватель импортирует систему Windows для тестирования OpenVPN | ||
* Разворачиваем [[Пакет OpenVPN]] в конфигурации с [[Пакет OpenVPN#Использование PAM аутентификации]] на node1,2,3 с [[Сервис Ansible#Использование ролей]] (не забыть про [[Сервисы Gateway и routing#Управление таблицей маршрутизации]] на gate) | * Разворачиваем [[Пакет OpenVPN]] в конфигурации с [[Пакет OpenVPN#Использование PAM аутентификации]] на node1,2,3 с [[Сервис Ansible#Использование ролей]] (не забыть про [[Сервисы Gateway и routing#Управление таблицей маршрутизации]] на gate) | ||
Line 210: | Line 214: | ||
=== 4.1 Разработка и нагрузочное тестирование приложения webd === | === 4.1 Разработка и нагрузочное тестирование приложения webd === | ||
- | * Преподаватель импортирует linux систему external-host для нагрузочного тестирования и демонстрирует "разработку" приложения на VM server | + | * Преподаватель использует linux систему external-host для нагрузочного тестирования и демонстрирует "разработку" приложения на VM server |
* [[Средства программирования shell#Web сервер на shell]] (методически, для обсуждения кода, можно, для упрощения, удалить из него все за комментированные строки, но не сохранять. Так же, можно вывести в лог [[Сервис HTTP#Пример HTTP диалога]]) | * [[Средства программирования shell#Web сервер на shell]] (методически, для обсуждения кода, можно, для упрощения, удалить из него все за комментированные строки, но не сохранять. Так же, можно вывести в лог [[Сервис HTTP#Пример HTTP диалога]]) | ||
* [[Сервис INETD]] | * [[Сервис INETD]] | ||
* Через [[Сервис Keepalived#Настройка балансировки нагрузки]] в Keepalived предоставляем доступ снаружи | * Через [[Сервис Keepalived#Настройка балансировки нагрузки]] в Keepalived предоставляем доступ снаружи | ||
+ | |||
+ | * [[https://github.com/wg/wrk|wrk - a HTTP benchmarking tool]] | ||
* [[https://lindevs.com/install-vegeta-on-ubuntu|Install Vegeta on Ubuntu 20.04]] | * [[https://lindevs.com/install-vegeta-on-ubuntu|Install Vegeta on Ubuntu 20.04]] | ||
Line 227: | Line 233: | ||
external-host# curl http://172.16.1.X | external-host# curl http://172.16.1.X | ||
- | external-host# echo "GET http://172.16.1.X" | vegeta attack -duration=60s -rate=400 | vegeta report | + | external-host# echo "GET http://172.16.1.X" | vegeta attack -duration=20s -rate=100 | vegeta report |
server# tail -f /var/log/syslog | server# tail -f /var/log/syslog | ||
Line 235: | Line 241: | ||
* Устанавливаем [[Технология Docker]] на server, собираем образ приложения "вручную" из под root | * Устанавливаем [[Технология Docker]] на server, собираем образ приложения "вручную" из под root | ||
- | * Изучаем [[Технология Docker#Процессы контейнера и системы]] и [[Технология Docker#Анализ параметров запущенного контейнера]] | + | * Изучаем [[Технология Docker#Процессы контейнера и системы]] и [[Технология Docker#Анализ параметров запущенного контейнера]] (преподаватель, можно на node1, пока у всех ставится docker) |
- | * Используя [[Технология Docker#Предоставление прав непривилегированным пользователям]] и su - gitlab-runner (пригодится для процесса CD в minikube, для удобства работы выполнить [[Настройка командных интерпретаторов]]), знакомимся с [[Технология Docker#Создание контейнера для приложения с использованием Dockerfile]] | + | * Для удобства, выполнить [[Настройка командных интерпретаторов]] |
+ | * Используя [[Технология Docker#Предоставление прав непривилегированным пользователям]] для gitlab-runner (пригодится для процесса CD в minikube), знакомимся с [[Технология Docker#Создание контейнера для приложения с использованием Dockerfile]] | ||
- | * [[Технология Docker#Запуск в режиме демона и подключение к контейнеру]] несколько копий вручную, и, через [[Сервис Keepalived#Настройка балансировки нагрузки]], повторяем нагрузочное тестирование | + | * [[Технология Docker#Запуск в режиме демона и подключение к контейнеру]] несколько копий вручную, и, через [[Сервис Keepalived#Настройка балансировки нагрузки]], повторяем нагрузочное тестирование (преподаватель) |
* Знакомимся с [[Технология Docker#docker-compose]] для запуска нескольких копий приложения | * Знакомимся с [[Технология Docker#docker-compose]] для запуска нескольких копий приложения | ||
Line 288: | Line 295: | ||
=== 5.2 Базовые объекты k8s === | === 5.2 Базовые объекты k8s === | ||
- | * Изучаем [[Система Kubernetes#Базовые объекты k8s]] | + | * Изучаем [[Система Kubernetes#Базовые объекты k8s]] (gitlab-runner@server:~/webd$) |
* Для понимания работы [[Система Kubernetes#Ingress]] (понадобится в следующем курсе), настраиваем [[Сервис HTTP#NGINX]] для доступа к приложению webd в minikube с хост системы | * Для понимания работы [[Система Kubernetes#Ingress]] (понадобится в следующем курсе), настраиваем [[Сервис HTTP#NGINX]] для доступа к приложению webd в minikube с хост системы | ||
* Тестируем livenessProbe с extern-host | * Тестируем livenessProbe с extern-host | ||
Line 300: | Line 307: | ||
=== 5.3 Deploy в k8s === | === 5.3 Deploy в k8s === | ||
- | * Автоматизируем deploy используя [[Инструмент GitLab#Пример shell Kubernetes]] GitLab CD, сталкиваемся с необходимостью править версию в манифесте, рассмотрев вариант envsubst видим необходимость в Helm | + | * Автоматизируем deploy используя [[Инструмент GitLab#Пример shell Kubernetes]] GitLab CD (см. выше), сталкиваемся с необходимостью править версию в манифесте, рассмотрев вариант envsubst видим, необходимость в Helm |
+ | * В финале, можно "собрать" новую версию приложения на gate из под учетной записи student | ||