03- DevOps практика: GitlLab CI+Runners. Создание CI CD Pipeline.

  Переглядів 86,460

RomNero

RomNero

День тому

GitLab - веб-инструмент жизненного цикла DevOps с открытым исходным кодом.
Рассмотрим как работает GitLab CI, что такое Runners, как они настраиваются и подключаются
В видео показано CI и CD различия. А так же создание простого Pipeline.
00:00:00 | Что такое CI/CD
00:03:35 | CI/CD Pipeline
00:06:44 | Что такое Runner
00:14:30 | Установка Docker Runner 1/2
00:19:22 | Решение проблемы с SSL при подключении Runner
00:26:15 | Установка Docker Runner 2/2
00:28:10 | Первый простой Pipeline
00:39:05 | Gitlab CI Artifacts
00:42:00 | GitLab Runner Shell. Установка и настройка
00:46:24 | Shared Runner
00:48:27 | Добавление Stages
00:51:45 | Allow Failure. Управление ошибками
00:53:42 | Добавление прав для gitlab-runner. visudo
01:00:00 | Переменные (variables) в Pipeline
01:02:53 | Глобальная переменная
01:06:11 | Расширяем Pipeline. Установка Apache2
01:14:01 | Добавление очередного Stage
Команды в видео: github.com/RomNero/UKposts-In...
Установка GitLab: about.gitlab.com/install/?ver...
Gitlab Runner: docs.gitlab.com/runner/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Буду очень благодарен за поддержку в виде чашечки ☕️:
www.buymeacoffee.com/RomNero
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Предложениям пишите на: infotube@romnero.de
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

КОМЕНТАРІ: 233
@riariorovere2462
@riariorovere2462 2 роки тому
Это очень крутой урок! Огромное спасибо!
@pnppro100kvashin5
@pnppro100kvashin5 2 роки тому
Большое спасибо! Очень полезный курс
@SunsSpott
@SunsSpott 2 роки тому
Классный урок, спасибо! "билЬд" немного резал ухо, немецкий учил наверное)))
@RomNero
@RomNero 2 роки тому
Спвсибо. Да, я в Германии живу.
@missile158
@missile158 5 місяців тому
Подсказка тебе была когда он указывал адрес runner .de. JA JA NATURLICH DAST IS BILD MEIN SCHULLER))
@ilya9485
@ilya9485 2 роки тому
Благодарен за грамотные обзоры. Спасибо за труды и старания!
@RomNero
@RomNero 2 роки тому
Спасибо))
@volsof
@volsof 8 місяців тому
Очень хороший урок. Для начинающих очень подходит. Автору плюс в карму за труд.
@RomNero
@RomNero 8 місяців тому
Спасибо😉 больше получился не как урок, а пример использования. По Gitlab CI ещё сделаю полноценное видео
@crazy_king
@crazy_king Рік тому
Огромное тебе спасибо за твоё подробное творчество. :)
@RomNero
@RomNero Рік тому
Спасибо за оценку👍🏻
@networkthor2136
@networkthor2136 Рік тому
Прекрасное видео! Спасибо!
@larybronson
@larybronson Рік тому
спасибо тебе милый человек, ты открыл мне глаза на гитлаб си
@user-ki4cd6dc6u
@user-ki4cd6dc6u Рік тому
Благодарю автора за время и материал!) Всё отлично работает, после нескольких дней мучений. Оставлю это здесь на случай аналогичных проблем!
@RomNero
@RomNero Рік тому
Спасибо за позитивный отзыв 👍😀
@vladpetrachuk4873
@vladpetrachuk4873 2 роки тому
Отличная работа! Огромное спасибо за материал!
@RomNero
@RomNero 2 роки тому
Спасибо за отзыв. Мне очень важно знать, что материал понятно изложен))
@user-tk7hx1jk6r
@user-tk7hx1jk6r Рік тому
Спасибо за уроки, темпы что надо с разъяснениями.
@RomNero
@RomNero Рік тому
Спасибо за отзыв. Значит буду продолжать в таком же стиле 👍🏻😊
@dkaa77
@dkaa77 Рік тому
Спасибо тебе за твои труды!
@RomNero
@RomNero Рік тому
Спасибо за отзыв 👍🏻😊
@happymishka1
@happymishka1 Рік тому
Благодарю! Все очень понятно! Получилось разобраться в CI/CD и пайплайнах. Все очень подробно и сразу понятно!
@RomNero
@RomNero Рік тому
Спасибо за отзыв 👍🏻 двигаемся в таком же нарравлении
@user-vr8lk7fx4l
@user-vr8lk7fx4l 2 роки тому
Хороший урок. Спасибо!
@user-ie6iw8jz6f
@user-ie6iw8jz6f 3 місяці тому
урок супер, все четко и без воды
@brest1019
@brest1019 2 роки тому
Спасибо братанчик за старания!💪👍 Благодарим!
@RomNero
@RomNero 2 роки тому
Всегда пожалуйста 😉
@user-sp4oq7yk9w
@user-sp4oq7yk9w Рік тому
Спасибо Вам Очень интересно
@chuckchuck1090
@chuckchuck1090 Рік тому
Просмотрел и не добавил лайк, вернулся исправился))) Спс за гайды, очень круто. Благодаря этому гайду потом хоть знаешь что гуглить и искать дальше
@RomNero
@RomNero Рік тому
Спасибо 👍🏻
@UAStriker
@UAStriker Рік тому
Спасибо за такой подробный урок!
@RomNero
@RomNero Рік тому
Всегда пожалуйста. Рад помочь.
@gor_7799
@gor_7799 Рік тому
Отличный урок!
@sysadmin84
@sysadmin84 2 роки тому
Спасибо большое. Очень интересно. Мне очень помогло
@armcfly9485
@armcfly9485 11 місяців тому
Мега классный туториал. Удачи автору!
@RomNero
@RomNero 11 місяців тому
Спасибо👍
@mrWiled
@mrWiled 9 місяців тому
Мужик, ты просто лучший!
@AlexK-df4ne
@AlexK-df4ne Рік тому
Как всегда чётко, портяно, последовательно!
@RomNero
@RomNero Рік тому
Спасибо большое 😉👍 мега приятно
@olgaryzhkova2330
@olgaryzhkova2330 Рік тому
просто супер, все ясно и подробно
@RomNero
@RomNero Рік тому
Спасибо за отзыв😊👍🏻
@MRoose
@MRoose Рік тому
Отличный урок, особенно на фоне отсутствия иных на русском языке) Огромное спасибо, теперь есть представление о всем процессе
@RomNero
@RomNero Рік тому
Спасибо. Рад помочь
@tronco3180
@tronco3180 2 роки тому
огромное спасибо за труд! круто изложил
@RomNero
@RomNero 2 роки тому
Спасибо. Возможно только примеры не очень корректно подобрал. Но цель была показать как работает gitlab CI.
@Bupyc2006
@Bupyc2006 2 роки тому
spasibo, kak wsegda wsio kruto :)
@tsargvidon760
@tsargvidon760 2 роки тому
Топовый урок, спасибо!
@RomNero
@RomNero 2 роки тому
Спасибо за отзыв))
@erics8362
@erics8362 2 роки тому
Топовый видос. Сам изучаю Jenkins, но про gitlab было интересно
@RomNero
@RomNero 2 роки тому
Спвсибо. Jenkins классный и мощный инструмент.
@evgvac
@evgvac Рік тому
Пожалуй лучшее видео по обучению gitlab
@RomNero
@RomNero Рік тому
Спасибо. Ещё в планах есть видео по gitlab. Вышли новые версии и добавилось несколько функций
@evgvac
@evgvac Рік тому
@@RomNeroЭто Вам спасибо! Docker изучил по Вашим видео, теперь использую его в работе.
@RomNero
@RomNero Рік тому
Очень приятно слышать, что мои видео помогли Вам👍
@network_sw
@network_sw 2 роки тому
Спасибо за видео. Реализовал у себя такую схему: есть локальный гитлаб, есть два сервера. Поставил на оба сервера shell-runner и ansible. Раннеры подключил к гиту и создал репозиторий с плейбуками ansible. Gitlab-runner запускает команду ansible-pull который тянет с гита нужную конфигурацию и применяет. На выходе получаю следующее: со своего рабочего места в IDE правлю код ансибла, делаю коммит и пуш в гитлаб - изменения сразу же применяются на обоих серверах. По-моему достаточно удобно.
@RomNero
@RomNero 2 роки тому
Круто. Спасибо!!! Очень чётко все описал. Побольше бы таких коментов ;) И отдельное спасибо за ansible-pull 👍🏻
@123sultans
@123sultans 2 роки тому
можешь скинуть, playbook и gitlab ci файл?
@network_sw
@network_sw 2 роки тому
@@123sultans ютуб удаляет ссылки
@cranebird1467
@cranebird1467 2 роки тому
если у вас деплоу происходит сразу после изменения кода то так не должно быть, нужны сначала тесты и после них удачи деплой в прод.
@network_sw
@network_sw 2 роки тому
@@cranebird1467 Это когда ты работаешь в крупной конторе и пишешь совместный код. А для меня это просто замена того, что я и так сделал бы сейчас, зайдя по ssh, т.к я не кодер а админ. Плюс это какой-никакой бекап конфига. Я знаю, что если я разверну новый сервер и подключу к нему этот конфиг, то сервер сам настроит себя до требуемого состояния. На это уходит много времени при первоначальной конфигурации, но потом это окупается.
@user-ie6iw8jz6f
@user-ie6iw8jz6f 3 місяці тому
Супер, все сделал по вашему и собрал полностью лабу
@RomNero
@RomNero 3 місяці тому
Отлично 👍
@playlist483
@playlist483 9 місяців тому
Спасибо чувак )))
@user-bu3dt3ou7n
@user-bu3dt3ou7n Рік тому
Блин спасибо друг капец помог разобраться без воды
@RomNero
@RomNero Рік тому
Всегда пожалуйста. Рад помочь))
@dmitrysmith1380
@dmitrysmith1380 5 місяців тому
Спасмбо огромное! Смотрю твои видео в режиме нон-стоп, так как готовлюсь стать девопсом))
@RomNero
@RomNero 5 місяців тому
Спасибо за отзыв. Успехов в этом не лёгком пути к devops😉
@kumaranv7006
@kumaranv7006 Рік тому
Спасибо! Интересно еще как работает мониторинг в гитлаб.
@ueukxvj
@ueukxvj 9 місяців тому
Красавчик. Побольше бы примеров для ymlов Переменные, экранирование, примеры использования вот это все. А так да, низкий поклон. В кои то веки не бросил разбираться и теперь буду использовать.
@RomNero
@RomNero 9 місяців тому
Спасибо за позитивный отзыв. Хочу ещё сделать несколько видео по gitlab. Нужно только найти время🙂
@givgiv6688
@givgiv6688 10 місяців тому
спасибо за видео, без воды, с разбором ошибок, единственное хорошее на рускоязычном ютубе про ci в gitlab
@RomNero
@RomNero 10 місяців тому
Спасибо. Очень приятно 👍
@user-wx1zs5or4z
@user-wx1zs5or4z 9 місяців тому
Супер видос! Спасибо
@RomNero
@RomNero 9 місяців тому
Всегда пожалуйста😉
@chuckchuck1090
@chuckchuck1090 Рік тому
Спс, буквально из-за твоего видео за две недели написал CI CD для PG Pro Ent: установка, настройка Data, изменение conf файлов, передачу бекапов в докер и еще куча всего))) Передал бекапы программистам, теперь заявки по базам для дев ушли с отдела))) Теперь Swarm изучаю
@RomNero
@RomNero Рік тому
Спасибо за отзыв. Приятно слышать, что мои видео помогли. Я бы оставил swarm, а время лучше инвестировать в K8s
@chuckchuck1090
@chuckchuck1090 Рік тому
@@RomNero да проблема что нет годных гайдов по нем, а отзывы такие, что прод на нем будешь запускать долго, а swarm это почти сразу.
@RomNero
@RomNero Рік тому
Согласен. Гайдов конкретных мало. Нужно искать постоянно решения проблем. Но swarm никто уже не использует. Всё же лучше попытаться изучить kubernetes. По нему хочу делать видео, но оно не скоро будет.
@_Yar_
@_Yar_ 11 місяців тому
Спасибо, очень круто! Очень! ))
@RomNero
@RomNero 11 місяців тому
Спасибо 👍
@BlessingOfLord
@BlessingOfLord 3 місяці тому
Спасибо за видео, удалось понять основы CI/CD и научиться писать простенькие пайнплайны, только я за место трех виртуалок поднял две, на втором ранере сделал теги test и stage, дабы сэкономить себе оперативную память :)
@RomNero
@RomNero 3 місяці тому
Отлично. Поздравляю с первыми шагами в CI 👍
@UralBashkiria
@UralBashkiria Місяць тому
Супер все понятно! есть и простые примеры и посложнее. Спасибо!
@RomNero
@RomNero Місяць тому
Спасибо за полезный отзыв👍
@dreng1r
@dreng1r 2 роки тому
Спасибо за видео. Плюсую за gitlab container registry. Пошаговый рецепт был бы очень кстати.
@RomNero
@RomNero 2 роки тому
Спасибо. Ещё хочу сделать docker in docker Pipeline.
@igorgladkov8270
@igorgladkov8270 Рік тому
Спасибо, огромное!
@RomNero
@RomNero Рік тому
Рад помочь👍🏻
@vvops2540
@vvops2540 Рік тому
СПАСИБО!!!
@izmailovlz
@izmailovlz Рік тому
огонь!
@RomNero
@RomNero Рік тому
Спасибо
@user-tt8ym8tr6l
@user-tt8ym8tr6l 2 роки тому
Интересно послушать про гитлаб ригистри, как образы можно передавать между стейджами и вообще про докер ранер, там же проблема использовать докер образы, потому что получается docker-in-docker. В общем я бы про работу с образами в гитлабе послушал )))
@RomNero
@RomNero 2 роки тому
Спасибо. Видео будет о docker CI и docker in docker.
@erics8362
@erics8362 2 роки тому
Используем dind для построения образов в Jenkins - проблем не было. Ну и есть kaniko как альтернатива dind
@user-tt8ym8tr6l
@user-tt8ym8tr6l 2 роки тому
@@erics8362 спасибо, почитаю
@Timm1735
@Timm1735 5 місяців тому
спасибо
@Alayzcer
@Alayzcer 2 роки тому
Благодарю, отличный труд! От себя добавлю, удобно иметь инструкцию сборки в репозитории. Настройка ос и сборка с++ проектов годичной давности без conan кошмар, так и не вспомнишь где и какие взять зависимости.
@RomNero
@RomNero 2 роки тому
Спасибо за отзыв))
@antonkhokhlov7975
@antonkhokhlov7975 Рік тому
Познавательно, спасибо! Не подскажешь планируется ли видео о запуске GitLab вместе с Ansible через Molecule ? Так называемая Infrastructure As Code. Было бы очень полезно
@RomNero
@RomNero Рік тому
Спасибо за отзыв. Molecule это же для теста плейбуков. А по IaaS буду делать видео.
@antonkhokhlov7975
@antonkhokhlov7975 Рік тому
@@RomNero да, точно, спасибо большое
@fordevuz
@fordevuz 7 місяців тому
👍
@user-ze8si2co2f
@user-ze8si2co2f 2 роки тому
Огромное спасибо за проделанную Вами работу. Видео смотрятся легко и без напряга. При регистрации runner правда у меня возникла ошибка: " x509: certificate relies on legacy Common Name field, use SANs instead". Победить так и не смог, не силен в работе с сертификатами. ОС Centos 7, openssl version 1.0.2.
@RomNero
@RomNero 2 роки тому
Спасибо за отзыв. С сертификаты постоянно какие-то проблему будут возникать, если использовать не официальные или хотя бы letsencrypt
@erzhana8708
@erzhana8708 2 роки тому
решил? такая же проблема
@user-ze8si2co2f
@user-ze8si2co2f 2 роки тому
@@erzhana8708 проверь версию openssl
@erzhana8708
@erzhana8708 2 роки тому
@@user-ze8si2co2f 1.1.1f
@AlexanderAnanko
@AlexanderAnanko 2 роки тому
​@@RomNero, спасибо за подобный цикл. У меня возникла такая же проблема как и ТС ветки. Подскажите куда копать, т.к. в гугле решения найти не удалось? У меня ВМ на которой развернул ubuntu. На ней по вашему видео поднял Gitlab. Подключить gitlab-runner в докере на этой же ВМ не удается (вы в видео показали только решение проблемы с сертификатом на gitlab-runner shell). P.S. Белый адрес есть, но он динамический. Решил проблему пробросом портов через VPN-туннель с купленного VPS, но сертификат letsencript получить не удалось из-за ошибки таймаута, хотя времени прошло достаточно (более 72 часов) для обновления dns-записей (и сервер доступен из других точек мира по http и https).
@vitalykargin
@vitalykargin 2 роки тому
Как выполнить команду на всех раннерах с общим тегом? Получается сейчас если указать тег например shell, то гитлаб выбирает только один сервер рандомно с тегом shell и делает на нем джоб. А как на всех заставить?
@BorisPentego
@BorisPentego Рік тому
отличное видео! просто шикарное! а планируется ли аналогичное,но по работе именно с контейнерами? чтоб собирался контейнер по скриптам, сохранялся в репозитории гитлаба и заливался уже измененный по всем нужным стадиям?
@RomNero
@RomNero Рік тому
Спасибо за отзыв. Спасибо за идею👍 Подобное видео сделаю в теме по Devops примерам.
@Frezer911
@Frezer911 Рік тому
Чувак, крутой урок. Не понял одну вещь - почемы мы артефакты сохраняем на машине gitlab, а потом обращаемся к ним с машины test. Или они шарятся в рамках пайплайна и это как подмонтированный volume, который доступен на любом из stage пайплайна? P.S. попробуй слепую печать подтянуть, у меня тоже раньше было много опечаток.
@RomNero
@RomNero Рік тому
Спвсибо за отзыв. Артефакты доступны внутри Pipeline. Они хранятся на gitlab определённое время. Этот timeout так же можно выставить.
@samsonhonda2484
@samsonhonda2484 2 роки тому
жестко
@RomNero
@RomNero 2 роки тому
В каком плане?
@alexbulavin543
@alexbulavin543 День тому
на 14:03 "также есть дополнительные два сервера..." Откуда они взялись? Как нам их локально развернуть?
@sentix1288
@sentix1288 7 місяців тому
Нашёл на ютубе сначала курс какой-то из университета, много воды лишнего... Иии честно опять вы меня спасли :)) В первые ставил Gitlab, благодаря вам быстрее разобрался. Спасибо вам за качественный контент! У меня такой вопрос, смотрите допустим у нас есть общий runner, если 2 человека в команде одновременно пушат разные проекты, то это дело будет два Pipeline выполнять и не будут конфликта? Я просто создал по способу через докер и не создавал общий runner. От CI \ CD мне важно, чтобы он прогнал unit-тесты написанные. И вопрос по docker'у, допустим у меня 2 микросервиса они все изолированы в docker , мне стоит под базу данных \ nginx отдельный докер и всё? Или есть вариант по лучше? База данных у меня на localhost и в будущим если нужен будет 2 сервер я хотел бы SSH туннелировать.
@RomNero
@RomNero 7 місяців тому
Спасибо за отзыв. По runner: можно использовать 1 runner, но у 2го пользователя должны быть права на проект. По DB: можно использовать как контейнер. Или если планируется использовать БД для многих ресурсов, то можно поставить на отдельную машину или ещё лучше сделать центральный кластер. Вот пример: ukposts.info/have/v-deo/pmh2mrCRooZypZs.htmlsi=sFkGQAHBNvqoKj9g
@sentix1288
@sentix1288 7 місяців тому
@@RomNero Понял, а то есть я могу например взять в докер и поместить туда базу данных, а при добавление микросервиса, когда я упаковывать буду то просто пропишу в конфиге данные от бд?
@RomNero
@RomNero 7 місяців тому
В основном верно. Смотря какие приложения и какие цели стоят. И стоит обращать внимание в какой сети будут находится отдельные контейнеры.
@sentix1288
@sentix1288 7 місяців тому
@@RomNero Спасибо, понял.
@stanislavnedosekin
@stanislavnedosekin Рік тому
Здравствуйте, очень помогает ваша инструкция в работе, спасибо. Только можно уточнение, что значит на клиенте на 24:45, это какой то другой сервер или что извините?
@RomNero
@RomNero Рік тому
Спасибо за отзыв. В данном случае (в видео) клиенты - это были серверы, на которых работали gitlab-runner. И на эти же клиенты производился деплоймент.
@mikhailplekhov3894
@mikhailplekhov3894 Рік тому
Спасибо большое. Очень полезно. Правда так и не смог подключить runner в docker'е на хосте с gitlab, ошибка с сертификатом.
@RomNero
@RomNero Рік тому
Спасибо за отзыв. Да, это проблема у многих, кто использует не официальные сертификаты. Хотя для обучения можно импортировать любые сертификаты. И все будет работать. docs.gitlab.com/runner/configuration/tls-self-signed.html
@user-yu4tx2sv2g
@user-yu4tx2sv2g 9 місяців тому
Почему этап Проверка качества кода идёт до сборки?
@user-zg1ln2lh7m
@user-zg1ln2lh7m 3 місяці тому
Спасибо все круто, я не поня одно, как происходит деплой на сервере staging, где вы указываете чтобы деплоит на 10.10.10.127? Заранее блогадарю.
@RomNero
@RomNero 3 місяці тому
Все происходит по тегам от gitlab runner.
@user-zg1ln2lh7m
@user-zg1ln2lh7m 2 місяці тому
спасибо понял@@RomNero
@artyomovanton
@artyomovanton 2 роки тому
Спасибо за урок! А что за клиент для SSH с табами?
@RomNero
@RomNero 2 роки тому
Это MobaXTerm ukposts.info/have/v-deo/rHaHe4mWe6ZeyKc.html
@user-ie6iw8jz6f
@user-ie6iw8jz6f 3 місяці тому
Вы проводите персональные уроки по DEVOPS?
@RomNero
@RomNero 3 місяці тому
Пока не думал обэтом😄
@user-cf3zs6fo4k
@user-cf3zs6fo4k 9 місяців тому
25:17 Делал всё по шагам, у меня нет gitlab-runner, мы же контейнер запускаем(по крайней мере до этого момента). Что произошло я не понял, gitlab-runner в одной вкладке у автора всё норм, вернулся на старую вкладку с установкой докером у него тоже всё норм. У меня при старте контейнера как ругался на сертификат так и ругается
@cheater4105
@cheater4105 8 місяців тому
нужна помощь, застрял на том, что не могу найти URL. Registration token- есть, URL не могу найти
@eldarkarimov5791
@eldarkarimov5791 Рік тому
Здраствуйте, здесь вы использовали самоподписанный сертификат да ? , потому что вы не создали запрос для подписывание сертификата
@RomNero
@RomNero Рік тому
Да, здесь использовался самоподписанный сертификат. Но лучше сделать нормальный (например, Let'sEncrypt)
@user-zg1ln2lh7m
@user-zg1ln2lh7m 3 дні тому
Добрый день! Хочу запускать скрип на хосте, такаая ошибка, а так npm установлен через root. pipline выполняется через user gitlab-runner. как запускать на рууте в определенном папке, npm install $ ssh root@10.11.12.13 'bash -s' < /opt/deploy.sh bash: line 3: npm: command not found bash: line 5: npm: command not found /usr/bin/env: ‘node’: No such file or directory Заранее блогадарю.
@pbadun
@pbadun 2 роки тому
вот бы так подробно но для SpringBoot и запуск dev в docker....
@MuKeXa
@MuKeXa 2 роки тому
Всё это хорошо, легко и просто, но в тепличных условиях. У меня есть машинка, но докер туда никак. И вот кагбы усьо... При деплое появляются "особенности", начинаешь изучать Ansible и выкручиваться как только можно :) + бюрократия добавляет веселия... А вообще да, CI/CD - хорошее дело.
@RomNero
@RomNero 2 роки тому
Полностью согласен. Отличные условия там, где нет ограничений, от этого страдает и безопасность. В Pipeline просто закинуть команды для ansible. И все так же можно автоматизировать))
@MuKeXa
@MuKeXa 2 роки тому
@@RomNero Но это еще один инструмент, хотя и полезный :) Я наверное и на канал этот попал, потому что искал инфо по ansible ))) P.S. Я то уже нормально подразобрался, но по AWX как-то мало информации(ну или я плохо искал). Особенно тонкостей типа привязки credential Ansible Galaxy к организации. Иначе requirement.yaml не поедет. И оно зараза не в ошибку падает, а пишет msg в логе джобы ))) Еще были моменты, но не такие мучительные как этот ) Успехов!
@screamoviolence1456
@screamoviolence1456 9 місяців тому
Очень наглядный урок, только не очень понятно что есть gitlab server, его предоставляет gitlab? Как к нему подключится?
@RomNero
@RomNero 9 місяців тому
Посмотри начальные видео. Это 3-е видео из серии.
@user-gu5pz8xf3u
@user-gu5pz8xf3u Рік тому
Привет) Установил первый ранер в докере как у тебя, с теми же командам в gitlab-ci.yml - все хорошо, также работает и выполняется. Но добавил другую команду('./mvnw package'), сборки архива java, и stage падает с ошибкой '/bin/bash: Permission denied' как у тебя во втором случае. Пытался выдать права внутри докера, но почти любая команда внутри контейнера не выполняется(даже статус ранера не могу узнать), и не думаю, что менять что-то внутри докера это вообще хорошо, я хотел хоть как-то заставить ранер выполнить джобу. Как можно разрешить эту проблему? з.ы. Докер с контейнером ранера стоит на винде, не уверен, что это важно, но все же.
@RomNero
@RomNero Рік тому
Привет. Я бы посмотрел именно скрипт mvnw. Возможно, он пытается использовать какие-то системные ресурсы. Попробуй запустить скрипт так: sh mvnw. Проверь права на файлы в проекте.
@nastyanahamchena379
@nastyanahamchena379 Рік тому
Вопрос, когда ты переходишь на сервер (gitlab test и staging) и пишешь там команды, куда ты переходиш где это... у меня гитлаб на vm azure где мне писать эти команды ?
@RomNero
@RomNero Рік тому
По ssh можно подключится к серверам даже в azure
@TrooperRX
@TrooperRX 2 роки тому
Пожалуйста сделайте отдельный выпуск Docker для чайников, вы тут пихаете докер, хотя мы понятия не имеем что у него под капотом и для чего он нужен, ну или хотя бы оставьте ссылку под этот комментарии хороший ресурс для его изучения на русском, заранее благодарен
@RomNero
@RomNero 2 роки тому
Спасибо. О докере будет видео. Но немного позже.
@artiroot6903
@artiroot6903 Рік тому
беда с этими сертификатами для локальной сети, самоподписные не работают в браузере, отсюда и раннер не зарегистрируешь
@TheBRYANT32
@TheBRYANT32 18 днів тому
CD это continuous delivery/deployment
@vitalykargin
@vitalykargin 2 роки тому
22:45 а где команда-то из видео openssl?
@myyyp1
@myyyp1 4 місяці тому
Надо прям через root?
@alexbulavin543
@alexbulavin543 Рік тому
CD = Continuous Delivery и Continues Deployment, насколько я представляю. А не Continues Development. Не так ли?
@RomNero
@RomNero Рік тому
В сочетании CI/CD - именно Delivery и Deployment, как доставка и развёртывание.
@user-ii2sq9cq3y
@user-ii2sq9cq3y Місяць тому
а как сейчас бегуна зарегать?Ошибку выдает при реге
@top_auto600
@top_auto600 Місяць тому
Я новенький, подскажите это линукс, сендос или что стоит на серверах?
@RomNero
@RomNero Місяць тому
Для видео использую Ubuntu
@asm64
@asm64 Рік тому
Всё классно, только не понятно зачем такая дичь на стейж и прод без докера? Как минимум с привязкой к хост системе начнутся проблемы с версиями того же питона и енвы не помогут (что собственно и указано в доках). Три шага назад получается. По идее после второго шага нужно слить конты в докер режистри, а на продах уже готовый конт вытягивать. При этом в енвах на проде DEVELOP=False. Второй момент. Проще готовый скрипт запускать, чем формировать его на лету. Получается код не самодостаточный и уже без гитлаба не работает. Для группы серверов достаточно одного ранера с ансиблом. Но я думаю это здесь чисто для примера. Спасибо за видео.
@RomNero
@RomNero Рік тому
Спасибо за комментарий. Согласен с Вами. Это чисто что бы показать как работает CI и что бы без сильных наворотов. В прод так делать не стоит 😄
@vladad162
@vladad162 Рік тому
Добрый день. А можно ссылку на проект?)
@RomNero
@RomNero Рік тому
Приветствую. На какой проект? Это использовался gitlab в локальной сети
@daadshaman2095
@daadshaman2095 Рік тому
Привет! Смотрю твои видео в 2023 и не перестаю удивляться)! Только вот ошибка при регистрации ранера на сервере так и осталась "x509: certificate signed by unknown authority" Сервер и ранер с докером запускаю на локальной машине без домена. Не могу понять где не прав...
@RomNero
@RomNero Рік тому
Спасибо. Проблема с сертификатом. Используется самосозданный сертификат. Решается импортом CA сертификата в раннер.
@daadshaman2095
@daadshaman2095 Рік тому
@@RomNero спасибо, сейчас попробую посмотреть где это и как) А в ранер в etc/ssl/ ???
@ibragimProtopopov
@ibragimProtopopov 11 місяців тому
@@daadshaman2095 Решил проблему?
@daadshaman2095
@daadshaman2095 11 місяців тому
@@ibragimProtopopov нет, не решил...
@wordofworld6874
@wordofworld6874 Рік тому
У вас есть test и staging как вы их создали?
@wordofworld6874
@wordofworld6874 Рік тому
Здесь просто показали что есть у вас сервера ukposts.info/have/v-deo/onF6nJ6Mg5lounU.html а как их создать?
@RomNero
@RomNero Рік тому
У меня сервера созданы в proxmox. Если есть трудности с созданием серверов. То лучше начать изучать изначально эти вещи, а потом уже переходить к cicd
@wordofworld6874
@wordofworld6874 Рік тому
@@RomNero Не понял что за сервера. Можете ссылочку кинуть? ) Где почитать как сервера сделать?
@ralymbetov
@ralymbetov 4 місяці тому
Не знаешь, где взять "authentication token" вместо "registration token", которую скоро уберут? Никак не пойму, где взять этот токен 🤷‍♂
@user-ks3om2th1o
@user-ks3om2th1o Рік тому
Спасибо за урок, есть проблема одна, не знаю как решить. Установил докер, скачал ранер по инструкции на локальной машине. При регистрации выдает ошибку. И комент, уже который раз, удаляют!
@user-ks3om2th1o
@user-ks3om2th1o Рік тому
если делать как по инструкции то он пытается достучаться до гитлаба через интернет, добавил "docker run --add-host=gitlab.test.ru:192.168.xxx.xxx --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register", теперь уже ругается на сертификат "x509: certificate relies on legacy Common Name field, use SANs instead"
@RomNero
@RomNero Рік тому
Как я в видео и говорил, что без нормального сертификата все нужно делать обходными путями.
@user-ks3om2th1o
@user-ks3om2th1o Рік тому
В общем забил на этот docker -> gitlab-runner, поднял новую виртуалку, туда поставил docker и gitlab-runner все зарегистрировал, что бы не вылезала ошибка "x509: certificate relies on legacy Common Name field, use SANs instead", нужно было перегенерировать ключик с дополнительным параметром -addext "subjectAltName = DNS:gitlab.XXX". И еще одна проблема была когда запускал gitlab CI, выдавал ошибку "Fatal: unable to access and could not resolve host", для этого надо зайти в /etc/gitlab-runner/config.toml и там в [runners.docker] добавить extra_hosts = ["gitlab.XXX:ip сервера"]
@user-td3br7hc7v
@user-td3br7hc7v Рік тому
@@user-ks3om2th1o ты крутой! Как нашел решение ко второму вопросу?
@ibragimProtopopov
@ibragimProtopopov 11 місяців тому
А что значит обойти проблему с сертификатом? А как в реальном проекте происходит, чтобы не обходить, а сделать как надо?))
@RomNero
@RomNero 11 місяців тому
Проблема, когда используется самоподписанный сертификат. В этом случае клиенты не доверяют данному сертификату. Но CA можно внести в систему клиентов. И тогда всё работает. Так делают так же в прод. Второй вариант - использовать официальные сертификаты. Например, от Let'sEncrypt.
@ibragimProtopopov
@ibragimProtopopov 11 місяців тому
@@RomNero спасибо за ответ) x509: certificate relies on legacy Common Name field, use SANs instead Вот такая ошибка у меня. Делаю все как на видео
@ibragimProtopopov
@ibragimProtopopov 11 місяців тому
сейчас как-то иначе добавлять runner нужно, может из-за этого
@brest1019
@brest1019 Рік тому
ссылка на команды в видео уже не работает?
@RomNero
@RomNero Рік тому
Спасибо. Ссылку исправил.
@derekstackboy6583
@derekstackboy6583 Рік тому
а как зайти в админ панель? а то у меня нету такой вкладки
@RomNero
@RomNero Рік тому
Должны быть права админа. Справа вверху есть меню. В меню снизу будет "Admin"
@vh3104
@vh3104 10 місяців тому
Начало не плохое. Немного расстроила необходимость создавать сервер с самим гитлабом (ну ведь подавляющее большинство используют сам гитлаб, а не его установщик на своем сервере). Теперь, думаю, что ничего не війдет, но надеюсь хоть что-то новое пойму. (3 дня уже бегаю по туториалам - везде одно и то-же, и не работает НИ ЧЕ ГО)
@RomNero
@RomNero 10 місяців тому
С официальным gitlab все так же работает. И сама фишка gitlab в отличии от github, что его можно установить у себя в окружении. Именно это и делает большинство. Если ничего не работает, то нужно искать ошибку, наверное, в другом месте. Могу только посоветовать: посмотреть официальную документацию, может там получится решить возникающие проблемы.
@vh3104
@vh3104 10 місяців тому
@@RomNero я как только не пробовал. И по документации шел и на стековерлоу спрашивал - не отвечают. Я не понимаю. Ранер не создает файл на сервере - он создает файл где-то у себя.Но не на сервере. Через ssh тоже не получатся настроить - ранер не видит созданной переменной. Никто нигде не отвечает. Дока очень громоздкая, информация разбросанная. Много версионности которая сильнно путает. В ютубе все только на серверах и то я не понимаю КАК сохраняются файлы на сервере, если у меня сохраняются только где-то в закромах гитлаба под ранером. Ну почему нет елементарных вещей в доступе? Почему НИКТО в интернете не знает КАК сохранить файл на сервере через гитлаб си-сд??? Что это вообще?
@vh3104
@vh3104 10 місяців тому
@@RomNero Ну вот смотрите. В документации, в разделе Регистрации Ранера написано: "Install it on a server separate than where GitLab is installed". Исходя из этого понятно, что зарегестрировать можно только на том сервере, где НЕ установлен сам гитлаб. А все туториалы уставливают там где он есть. Как тут не запутаться? Как верить в то, что я что-то сделал не так, раз никто не делает так, как в документации?
@RomNero
@RomNero 10 місяців тому
В документации все верно написано. Именно отдельная установка ranner соответствует "лучшим практикам". Но там не стоит you must install it... Здесь стоит сначала понять логику работы gitlab CI. Сложного в этом нет. Вы меня подтолкнулм на мысль сделать ещё видео о gitlab CI. С учётом best practice и с использованием более сложных схем bild, test, deploy...
@data-center-project
@data-center-project 6 місяців тому
mkdir -p если директория существует, то ругаться не будет
@Alexander-tl8uw
@Alexander-tl8uw 9 днів тому
А где yaml для ci/cd? Набирать с экрана?(
@RomNero
@RomNero 9 днів тому
Ой, нужно закинуть. Спасибо. Я не заметил.
@wordofworld6874
@wordofworld6874 Рік тому
У меня gitlab внутри контейнера запускается. Как мне внутрь еще gitlab установить докер? ukposts.info/have/v-deo/onF6nJ6Mg5lounU.html
@RomNero
@RomNero Рік тому
Можно параллельно к gitlab установить runner
@shamstabrez2986
@shamstabrez2986 7 місяців тому
do this courses in english so that more people can take benefit from it
@RomNero
@RomNero 7 місяців тому
Thank you. I will make a separate channel for tutorials in English
@bind2738
@bind2738 Рік тому
Видос интересный и полезный, но ощущается, невыверенность сценария, постоянные заминки, лишние переходы и т.д. растягивают хронометраж. Думаю лучше подготовить весь код для видео изначально, чтобы не сидеть и не писать его по 5 минут, а просто вставляю его в нужные моменты с объяснениями.
@RomNero
@RomNero Рік тому
Спасибо за отзыв и конструктивную критику. Я это делаю как хобби. Поэтому сильно не готовлюсь, не пишу сценарий. Только на постобработке что-то подправляю. Не претендую на лучшие лаконичные видео 😄
@bind2738
@bind2738 Рік тому
Думаю они правда может стать одним из лучших обучающих видео на эту тему, если подготовить хороший сценарий и заправить его более добротным визуалом, для более наглядного объяснения.
@RomNero
@RomNero Рік тому
Спасибо за совет. Попробую. Но именно визуал (анимация, эффекты) занимают у меня огромное количество времени. Не очень креативный я в этом 😄 и не хочется превращать хобби в "нужно". Хотя, я с Вами полностью согласен, что тогда было бы интереснее смотреть. Попробую сделать, посмотрим что выйдет 😉
@alebedev81
@alebedev81 6 місяців тому
Не "Continuous Development", а "Continuous Deployment"
@olegskay1746
@olegskay1746 5 місяців тому
Для тех у кого не получается с сертификатом в раннере который запускается в докере на той же машине что и гитлаб, т.е. по инструкции на видео: Всё дело в том, что по видео мы запускаем раннер в докере, а пример со своим сертификатом - на клиенте без. Есть 2 решения: 1. Вы можете подключиться к докер-контейнеру который создается при запуске раннера в интерактивном режиме, и повторить операции которые производятся на клиенте как на видео, после чего зарегистрировать раннер. 2. Вы можете прописать в локальной сети в днс запись, чтоб докер хотя бы знал куда подключается (тогда не нужно будет редактировать файл hosts) На видео, видно что при запуске, происходит монтирование с хост машины /srv/gitlab-runner/config в докер в /etc/gitlab-runner т.е. мы можем на сервере проделать те же операции что для клиента, но изменить переменную окружения CERTIFICATE=/srv/gitlab-runner/config/certs/${SERVER}.crt и тогда, при запуске докера, мы указываем аналогично параметр который прокинется внутрь --tls-ca-file="/etc/gitlab-runner/certs/${SERVER}.crt" и тогда сохраненный сертификат на хост в машине будет доступен в докере. Так же, начиная с 15.10, изменился процесс регистрации раннеров. Теги и прочее теперь создаются прямо на сервере, а раннеру отдается только адрес и токен куда ему обратиться для регистрации.
@RomNero
@RomNero 5 місяців тому
Спасибо. Будет очень полезно👍
@olegskay1746
@olegskay1746 5 місяців тому
​ @RomNero а мне кажется, или изначально была идея, что на сервере где стоит gitlab, мы ранер ставим в докере, чтоб изолировано выполнять различную подготовку. А на других серверах ранер ставим в хост чтоб там уже можно было запускать разные контейнеры с разным окружением? Но потом в какой то момент произошла небольшая путаница, и мы запускаем докер в докере? т.е. на гитлаб-сервере executor у нас должен был быть shell, а на других как раз таки docker.
CI CD наглядные примеры
22:08
Ulbi TV
Переглядів 263 тис.
Этого От Него Никто Не Ожидал 😂
00:19
Глеб Рандалайнен
Переглядів 10 млн
Podman Tutorial Zero to Hero | Full 1 Hour Course
1:00:55
Amadeus for Developers
Переглядів 20 тис.
Best OS for programming? Mac vs Windows vs Linux debate settled
8:41
If you know Docker, its absolutely easy to install GitLab on Docker.
17:51
Proxmox Установка и обзор функций WebUI
14:08