====== Вход в Jenkins для администратора Linux ======
* [[https://youtu.be/FeD6VBY2Xss|Вход в CI/CD для Linux-админа]]
* [[https://habr.com/ru/post/716454/|Самый простой пример CI/CD]]
===== Реклама =====
* В эпоху агрессивного наступления новых технологий, связанных с CI/CD, появилось ироничное высказывание: Зачем что-то автоматизировать за 2 часа, когда можно сделать вручную за 10 минут. Но, если честно, большое количество времени системный администратор тратит на рутинные задачи - добавить разрешение в пакетный фильтр, запись в зону DNS, правила в системе электронной почты, список URL в прокси сервере ... Всякий раз надо "вспомнить" где это, в каком каталоге, поправить, как проверить синтаксис, не забыть перезапустить сервис ... Может оказаться, что 2 часа, потраченных на автоматизацию сэкономят не мало времени в будущем. Ну и бонус - знакомство с перспективными технологиями в Новом Году!
===== Техническое задание =====
* Настроить управление списком разрешённых доменов на proxy сервере Squid, с историей изменений и автоматизацией процесса тестирования и обновления на сервере
===== Запись вебинара =====
* Тэги: Jenkins, Git, Gitea, Squid, CI/CD, Webhook, Groovy, Pipeline
* https://youtu.be/hgKDh3MVqbc
* https://rutube.ru/video/299b61b457e95203906d9e60878993e3
===== Методическая подготовка =====
* Установить [[Управление ПО в Linux#Snap]] на server
* Установить [[Сервис JRE]] на server и gate
* Показать это на вебинаре
===== Шаг 1. Что у нас есть для начала =====
* Развернут стенд курса [[https://www.specialist.ru/course/yun2-b|Linux. Уровень 2. Администрирование сервисов и сетей]] или [[https://rutube.ru/video/18b52d9721f7464b4485fec7d894e8ca/|можно развернуть стенд дома (смотреть с 13-й минуты)]]
===== Шаг 2. Установка и настройка Squid =====
* **Разворачиваем сервис Squid**, как в статье: [[https://habr.com/ru/post/716454/|Самый простой пример CI/CD]]
* Используем [[Утилита curl]] для тестирования
===== Шаг 3. Установка и настройка Gitea =====
* [[Инструмент Gitea]]
* **Размещаем конфигурацию proxy сервера в** Gitea, как в статье: [[https://habr.com/ru/post/716454/|Самый простой пример CI/CD]]
* [[https://habr.com/ru/post/716454/|Самый простой пример CI/CD]]. **Проверим, все ли работает**, после изменения конфигурации:
student@gate:~$ git clone http://server.corpX.un:3000/student/squid-project.git
...
===== Шаг 4. Установка Jenkins =====
* [[Сервис JRE]]
* [[Инструмент Jenkins]] + plugins: git, SSH Build Agents, Pipeline
===== Шаг 5. Подключение агента Jenkins =====
* Создаем пользователя jenkins для [[Инструмент Jenkins#Подключение агента]]
* Разрешаем пользователю jenkins **выполнять команды с повышенными привилегиями**, как в статье: [[https://habr.com/ru/post/716454/|Самый простой пример CI/CD]]. **Проверим, все ли работает**
* [[Сервис JRE]]
* Настраиваем [[Инструмент Jenkins#Запуск агента через SSH]]
===== Шаг 6. Создание заданий Jenkins =====
* [[Инструмент Jenkins#Примеры проектов/заданий]]
pipeline {
agent {
node {
label 'gate'
}
}
stages {
stage('Test') {
steps {
sh 'sudo /usr/sbin/squid -k check -f conf.d/my.conf'
}
}
stage('Deploy') {
steps {
sh 'sudo /bin/cp -r ./* /etc/squid/'
sh 'sudo /usr/sbin/squid -k reconfigure'
}
}
}
}
===== Шаг 7. Настройка CI/CD =====
* Добавляем ALLOWED_HOST_LIST в [[Инструмент Gitea#Файл конфигурации]] Gitea
* Настраиваем [[Инструмент Jenkins#Webhooks]] в Jenkins
===== Итоги, вопросы? =====