====== Вход в CI/CD для linux админа ====== * [[https://habr.com/ru/post/716454/|Самый простой пример CI/CD]] ===== Реклама ===== * Сноуборд - это очень просто, забираетесь на гору повыше и съезжаете... CI/CD это очень просто - разрабатываете бэкенд на Go/Python, заворачиваете все в Docker, кладете исходники и образы в GitLab и настраиваете выкатку на прод в кластер Кubernetes, предварительно развернутый через Vagrant/Terraform и Ansible... Казалось бы, что общего между сноубордом и CI/CD? Ответ - высокий порог входа. Первый сразу требует множество физических навыков, второй сразу знание множества технологий * [[https://www.specialist.ru/news/6192/vhod-v-cicd-dlya-linuxadmina|Наш вебинар]] посвящен ПЕРВОМУ шагу в CI/CD после которого можно будет "ехать" забираясь на все более высокие "горки" ловя кайф от скорости, баланса и ощущения себя волшебником, повелевающим множеством классных технологий ===== Техническое задание ===== * Предоставить возможность коллективу системных администраторов править файлы конфигурации сервисов в едином удобном пространстве, с историей изменений и автоматизацией процессов тестирования и обновления на серверах ===== Запись вебинара ===== * [[https://youtu.be/FeD6VBY2Xss|Вход в CI/CD для Linux-админа]] ===== Методическая подготовка ===== * Установлен [[Инструмент GitLab]] на server * Создана учетная запись student в GitLab на server * Установлена для [[Установка ПО из исходных текстов#Использование утилиты make]] на gate * [[Модуль AppArmor#Определение наличия и правка профилей для служб]] dhcp на gate * Загружен deb дистрибутив [[Инструмент GitLab#GitLab Runner]] на gate ===== Шаг 1. Что у нас есть, подходящее для начала ===== * [[https://www.specialist.ru/course/yun2-b|Linux. Уровень 2. Администрирование сервисов и сетей]] * [[Сервис DHCP]] * [[Сервис DHCP#Статистика DHCP сервера]] ===== Шаг 2. Git для linux админа ===== * [[Сервис Git]] для каталога /etc/ ===== Шаг 3. "Первый" пример CI/CD в истории) ===== * [[https://www.specialist.ru/course/yun1-b|Linux. Уровень 1. Основы администрирования системы]] * [[Установка ПО из исходных текстов]] * [[Установка ПО из исходных текстов#Использование make для сопровождения файлов конфигурации сервиса]] * [[Сервис Git]] для каталога ~student/dhcp/ ===== Шаг 4. От Git к GitLab ===== * [[Инструмент GitLab]] * Подключаемся как student, New Blank Project (Project name: dhcp, без README) * [[Сервис Git#Обновление сетевого репозитория из локального]] * Редактируем dhcpd.conf в GitLab IDE (Commit to master branch) * [[Сервис Git#Клонирование и обновление локального репозитория из сетевого]] * [[Установка ПО из исходных текстов#Использование make для сопровождения файлов конфигурации сервиса]] ===== Шаг 5. А теперь настоящий CI/CD !!! ===== * [[Инструмент GitLab#GitLab Runner]] * Используем [[Пакет sudo]] для разрешений пользователя gitlab-runner * [[Инструмент GitLab#GitLab CI/CD]] * [[Сервис DHCP#Статистика DHCP сервера]] ===== Итоги ===== * [[https://www.specialist.ru/course/kuber|DevOps. Уровень 1. Инфраструктура как код, основные инструменты]] * План лабораторных работ: [[Введение в DevOps]] * [[Преимущества обучения в specialist.ru]] ===== Возвращаемся к началу) ===== Удаляем проект webd из GitLab Удаляем gitlab-runner gate из GitLab gate# visudo #Удаляем пользователя gitlab-runner gate# apt purge gitlab-runner gate# su - student student@gate:~$ rm -rf dhcp/ gate# cd /etc gate:/etc# rm -rf .git/ gate# sh conf/dhcp.sh