User Tools

Site Tools


devops1._основные_инструменты

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
devops1._основные_инструменты [2023/09/21 08:19]
val [Лабораторные работы: Тема лабораторных работ]
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 215: Line 219:
  
   * Через [[Сервис 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 237: Line 243:
   * Изучаем [[Технология Docker#​Процессы контейнера и системы]] и [[Технология Docker#​Анализ параметров запущенного контейнера]] (преподаватель,​ можно на node1, пока у всех ставится docker)   * Изучаем [[Технология Docker#​Процессы контейнера и системы]] и [[Технология Docker#​Анализ параметров запущенного контейнера]] (преподаватель,​ можно на node1, пока у всех ставится docker)
  
-  * Используя [[Технология Docker#​Предоставление прав непривилегированным пользователям]] ​и su - gitlab-runner (пригодится для процесса CD в minikube, для удобства работы выполнить [[Настройка командных интерпретаторов]]), знакомимся с [[Технология Docker#​Создание контейнера для приложения с использованием Dockerfile]]+  ​* Для удобства,​ выполнить [[Настройка командных интерпретаторов]] 
 +  ​* Используя [[Технология Docker#​Предоставление прав непривилегированным пользователям]] ​для ​gitlab-runner (пригодится для процесса CD в minikube), знакомимся с [[Технология Docker#​Создание контейнера для приложения с использованием Dockerfile]]
  
   * [[Технология Docker#​Запуск в режиме демона и подключение к контейнеру]] несколько копий вручную,​ и, через [[Сервис Keepalived#​Настройка балансировки нагрузки]],​ повторяем нагрузочное тестирование (преподаватель)   * [[Технология Docker#​Запуск в режиме демона и подключение к контейнеру]] несколько копий вручную,​ и, через [[Сервис Keepalived#​Настройка балансировки нагрузки]],​ повторяем нагрузочное тестирование (преподаватель)
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
  
  
devops1._основные_инструменты.1695273549.txt.gz · Last modified: 2023/09/21 08:19 by val