Это мини-задача, основанная на автоматизации с использованием файла Docker, GitHub и Jenkins. Цель этой задачи — запуск контейнера и мониторинг сервера с помощью кода, выложенного разработчиком в GitHub. Этим запуском и мониторингом занимается Jenkins.
GitHub: https://github.com/shubhabhi/MLOps_Task2
Описание задания :
1. Создайте образ контейнера с установленным Jenkins с помощью файла Docker.
2. Когда мы запускаем этот образ, сервис Jenkins автоматически запускается в контейнере.
3. Создайте цепочку заданий Job 1, Job 2, Job 3 и Job 4, используя подключаемый модуль конвейера сборки в Jenkins.
4. Задача 1. Автоматически извлекать репозиторий GitHub, когда разработчики отправляют код на GitHub.
5. Работа 2: просматривая код или программный файл, Jenkins должен автоматически запускать соответствующий языковой интерпретатор установленного контейнера изображения для развертывания кода (например: если код написан на PHP, то Jenkins запускает контейнер с уже установленным PHP).
6. Задача 3: проверьте свое приложение, работает оно или нет.
7. Работа 4: если приложение не работает, отправьте электронное письмо разработчику с сообщениями об ошибках.
8. Создайте дополнительное задание (задание 5) для мониторинга: если контейнер, в котором запущено приложение, по какой-либо причине не работает, то это задание должно автоматически запустить контейнер снова.
ЗАДАНИЕ-1
Вытягивание репозитория кода с помощью Jenkins:
ЗАДАНИЕ-2:
В этом задании нам сначала нужно будет проверить тип языка программирования, который использует код, и на основе кода мы создадим и запустим контейнер.
ЗАДАНИЕ 3:
Создаем тестовую среду и проверяем, работает наш код или нет.
ЗАДАНИЕ-4:
Основное задание состоит в том, чтобы проверить, работает ли код или нет, и если код не работает, он отправит электронное письмо администратору Jenkins с прикрепленным файлом журнала сборки, если задание завершится ошибкой в Jenkins.
ЗАДАНИЕ 5:
Это последнее задание отслеживает наши контейнеры, если по какой-либо причине наш контейнер останавливается или завершается, то это задание снова запустит наш контейнер после сбоя.
Наконец, после выполнения нескольких заданий в Jenkins, мы можем визуализировать наши задания с помощью плагина конвейера сборки Jenkins.