14-Jenkins -Основы Jenkins Pipeline и Jenkinsfile
Vložit
- čas přidán 27. 05. 2020
- #devops #девопс #jenkins #pipeline
14-Jenkins -Основы Jenkins Pipeline и Jenkinsfile
github.com/adv4000/jenkins-pi...
Если помог, поддержите парой баксов, хотябы Канадских :) www.paypal.me/DenisAstahov
Спасибо!
Тебе тоже!
Жаль, что это последний видос по Jenkins. Хотелось бы ещё))
Денис, сделайте пожалуйста урок по деплою в Kubernetes c Jenkins. Думаю многим будет интересно!!!)
У кого будет ошибка:
WorkflowScript: 2: Invalid agent type "docker" specified. Must be one of [any, label, none] @ line 2, column 13.
agent { docker { image 'python:latest' } }
^
Установите дополнительно Docker Pipeline.
спасибо Вам)
А если будет ругаться на нехватку прав, то вносим пользователя - jenkins (пользователя от которого запускается сервис) в группу - docker
@@bochinskii А если используется другой юзер, то его.
Спасибо, 3 часа е*усь)
Ух, досмотрел последние видео из цикла! Огромное спасибо за объяснение основ и за то, что даете веру в себя и в сто, что это все можно освоить)
Огромнейшее спасибо! Никак не мог найти настолько четко и качественно изложенный материал.
Большое спасибо. Крутой материал
Хорошо обьясняет, самое главное это где смотреть инструкцию, и чего откуда берется, чтобы было общее понимание как оно работает. Спасибо!
Уроки до сих пор актуальны, спасибо!
Агооньь.. Уже 3й раз пересматриваю и это великолепно.
🖐️🖐️👌🏻
Посмотрел все за выходные и кое-что потыкал. Подача у тебя великолепная, как сериал посмотрел ))
Спасибо за уроки, very good.
Спасибо за курс, было полезно!
спасибо Денис, ты круто объясняешь
Спасибо Огромное за курс!
Спасибо, что ты есть)
Очень вовремя, спасибо.
Денис, спасибо. Хороший курс!
Был рад помоч!
Спасибо. Как устроюсь на работу обязательно отправлю донат
Надеюсь дальше будет урок по мультибранч-пайплайнам) лайк. хотя все это на чисто ознакомительном уровне рассказано)
Подача материала классная :)
О-о-о, вот это действительно полезная тема.
Дякую! В 2023 вже можна розтягувати вниз вікно для коду pipeline
если что...
установить Docker Pipeline
установить docker на машину с агентом/нодой/слейвом
добавить разрешение на запуск контейнеров для учётки дженкиса
...
профит
Для пункта №3 : если запускать на Remote Agent : sudo usermod -aG docker $USER
CONGRATULYACIYA ! ))))))))))
Огромное спасибо за курс!
Большая просьба - добавить хотябы в описание то, что надо поставить плагин для docker и дать права на сокет.
Чувак, огромное спасибо
Спасибо
Денис, здравствуйте, а можно отдельный урок с пайплайном по работе с агентом кубернейтса? Это отдельный вид извращения и он очень много где применяется. Спасибо за знания! Базу у Вас получил - теперь документацию копать уже в разы легче по разным нюансам.
Просмотрел весь плейлист, спасибо огромное! Теперь можно и AWS продолжить смотреть у вас)
Посмотрел все видео про Jenkins, всё супер и доступным языком!)
Запиши пожалуйста так же подробно про Openshift))
Никогда не пользовался Openshift
k8s же есть уроки, тоже самое, за мелкими отличиями, но команды теже, в шифте просто побольше
@@malediq спасибо, за год я уже это понял 😅
Лучший!
Помимо докера на ноде еще нужно поставить плагины в менеджере плагинов дженкинса Docker, Docker Pipeline
КРА-СА-ВА.
ФУЛЛ курс !
Молитвы услышаны 10:48, теперь можно растягивать окно)
Не понимаю, почему так мало просмотров - тема интересная!
Интересных людей мало, смузи поколение преобладает)
поздравляю всех кто осилил этот мини курс)
ну наконец-то, самое небзодый материал в jenkins, было бы круто если был бы , расссмотрен варинт
git--jenkins--docker build--docker push-- kubernetes deploy
и расписанный jenkins file под это дело
Полная цепочка ci cd, Денис надеюсь ты увидишь этот коммент!!! спасибо за видосы
Самый какой??
Это основы Dockerfile а не полный CI/CD Pilepline
Вот и годнота подъехала. Очень рад урокам по дженкинс. Буду с нетерпением ждать продолжения.
Привет из арпеля 2024.
Теперь окно для редактирования скрипта спокойно растягивается =))
Если джоб отваливается с ошибкой "Got permission denied while trying to connect to the Docker daemon socket", то нужно:
sudo usermod -a -G docker jenkins
и рестартнуть jenkins
Клёво!
spasibo bratan
дженкинс - использует только groovy или в принципе можно скачать плагин и использовать другие языки?
10:32 тебя услышали. Сделали )))
Как будто жду очередную серию Игры Престолов :) 55 минут осталось :)
13 минут осталось)))
Подскажите плиз, может ли дженкинс автоматически поднять сервер на клауде и сделать туда деплой, если да, то нужен спец плагин? Спасибо
Денис, хотелось бы чтобы ты показал более реалистичные вещи с которыми сталкиваешься на работе . Например, есть проект на github. Нужно настроить webhook чтобы он дёргал jenkins при каждом изменении. А jenkins в свою очередь запускал бы pipeline из jenkinsfile. Этот pipeline должен сделать build, например создать файл war с помощью maven, и потом запустить роль ansible чтобы задеплоить его на сервер.
Ну это просто посмотреть два урока вместе, я в принципе всё уже показал.
Показал как настроить GitHub Webhook, показал как запускать shell команды.
И помощью Shell ты вместо [echo "hello"] просто запускай [ansible ]
То что надо, как раз мои слабые стороны) постоянно на собеседовании фейлю
А о чем именно спрашивают?
о чем спрашивали на собеседованиях?
Как можно разбить Jenkinsfile на части? А то у меня он достаточно большой, подключается около 7-8 шагов, слишком много кода для одного файла.
А можно сделать так что бы контейнер в конце оставался активным?
Денис, а такой вопрос, получается чтобы деплоить веб проекты с фрэймворками ,нужно на хосте ставить дженкинс и собственно там делать дженкинс файл (Pipline)?
Деплоить на remote сервер html файл , получилось, а вот с nodejs проектами ,как их деплоить, чет тяжко пока что ...
Подскажи пожалуйста, что надо сделать ?
А как ты раньше деплоил?
Скорей всего копировал все файлы проекта на WebServer.
Ну делай тоже самое через Jenkins теперь. всё.
ООО пайпы пошли
А pipline это выполнения какого-то количества джобов в stage ?
столкнулся с проблемами когда запускал докер в дженкинсе - сначала получал ошибку docker not found - не сразу понял что джоб запускается на слейве где нет докера, созданном на одном из предыдущих уроков, а потом не хватало прав на запуск - вылечил sudo chmod 666 /var/run/docker.sock
. с нетерпением жду следующего урока, спасибо!
Евгений, советую вам добавить пользователя в группу docker, а не давать права 666 - это не безопасно
@@user-dd8bl7pu8o подскажите последовательность команд плиз
@@yarikvadila1266 Чтобы Jenkins Master мог запускать docker контейнеры? Тут нужно понять в чем запущен Jenkins: на голом сервере или в docker контейнере. Если на голом сервере, то вот например есть мануал (ссыль*). Если же Jenkins тоже запущен в докер контейнере, то там ещё кое что нужно. Уточни, где у тебя Jenkins
Ссыль*
docs.oracle.com/cd/E37670_01/E75728/html/section_rdz_hmw_2q.html
А, там шла речь о Node, а не о Master. Ну последовательность та же, что по ссылке. Нужно добавить пользователя от имени которого Jenkins исполняет команды на Node в группу docker
@@user-dd8bl7pu8o на голом сервере, спасибо за совет, разобрался
Просмотрел все 14 выпусков "\d{1,2}-Jenkins .*", курс привлек меня простотой изложения, направленный не на заумные фразы, а улучшение понимания. Спасибо большое! Но в конце я ожидал какого-нибудь конкретного примера построения deploy изменений кода, например на PHP с использованием одного из популярных фреймворков, с запуском "composer install", с запуском unit-тестов, с тестами на качество кода, с рассылкой артефактов на множество бэкендов, выполнением команд на перезапуск веб сервера и т. д. Планируется такое? :-)
Я не программисто и не знаю даже что такое "composer install"
Сама концепция работы понятна на простых примерах дальше самому придется почитать
Отличное видео. А каким образом настроить обратную связь с разработчиками если? например, тесты (блок test staging) прошли неудачно? Можно конечно в скрипте sh настроить команду отправки уведомления по smtp. А есть ли способ это выполнить встроенными средствами Jenkins?
Настрой уведомления в Jenkins
@@ADV-IT Спасибо
i use teamcity,
and I like him more)
Everybody has his own choice)))
на самом деле DSL расшифровывается как domain specific language))
В пайплайне есть возможность отправлять сообщения на почту в конце сборки? (В джобах в настройках есть такая опция Уведомления по почте в послесборочных операциях и вроде как понятно все) В пайплайнах же не могу найти эту возможность(((
Установи нужный Plugin и посылай уведомления хоть в Slack
Очень крутой курс по Jenkins. Немного не понял, а для чего именно используются pipelin's? Кто может подсказать? (какой нибудь практический пример)
Чтобы в коде всё держать
Честно говоря кроме гитлаба нечего не использовал, но не представляю причин, чтобы переехать на что то другое, интересно было бы услышать какой то обзор сравнение разных систем си/сд.
никак не могу сделать интеграцию гитлаба и дженкинса помогите, validations failed пишет, а через вебхук не могу приконнектится ругается что в локальной сети находится, а доступ в гитхаб на работе закрыт
Добрый день, Денис.
В данный момент запуск (куска кода на groovy) осуществляется через веб интерфейс - my_jenkins/script, это очень не удобно, так как приходит делать лишние тела движения, тем более когда jenkins'ов очень много.
Подскажите как я могу автоматизировать запуск groovy скрипт в Jenkins?
Любые идеи... Через ansible, через API .....
Поделитесь пож-та реальным кейсом.
Заранее спасибо!
Планируется видео пайплайна в ECR и оттуда в EKS?
Может как-нибудь сделаю
Ну что, а теперь связочку: jenkins + ansible ?
ЖДУ!
два разных вывода будет, если что...
echo 'hello ${PROJECT_NAME}'
echo "hello ${PROJECT_NAME}"
Подскажите, как пофиксить?
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /var/lib/jenkins/workspace/Pipeline-Job-1
[Pipeline] {
[Pipeline] isUnix
[Pipeline] sh
+ docker inspect -f . python:3.7
/var/lib/jenkins/workspace/Pipeline-Job-1@tmp/durable-33869128/script.sh: 1: /var/lib/jenkins/workspace/Pipeline-Job-1@tmp/durable-33869128/script.sh: docker: not found
[Pipeline] isUnix
[Pipeline] sh
+ docker pull python:3.7
/var/lib/jenkins/workspace/Pipeline-Job-1@tmp/durable-5d06562e/script.sh: 1: /var/lib/jenkins/workspace/Pipeline-Job-1@tmp/durable-5d06562e/script.sh: docker: not found
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 127
Finished: FAILURE
необходимо на сервер, где установлен jenkins - установить и настроить docker + Manage Docker as a non-root user, мануал есть на сайте docker. После перезагрузки сервера все заработает.
А под каким linux юзером выпрлняется дженкинс файл?
запусти whoami как часть Jenkins job
Jenkins convert to pipeline plugin имеет смысл использовать?
Не пробовал
Можно ли установить openjdk 11 в jenkins и работать с ним?
Да.
www.jenkins.io/doc/administration/requirements/java/
Привет Денис а где ссылка на данный курс на Udemy?
www.udemy.com/course/rus-jenkins
@@ADV-IT Спасибо за курс купил его только, что на udemy, к сожалению PayPal у нас в стране запрещен так бы перечислил. Не знаю стану ли я Devops но за такой труд надо отблагодарить считаю:)
Кстати на Udemy почитал про твои сертификаты по AWS:
- AWS Security - Specialty
- AWS Solutions Architect - Associate
- AWS Developer - Associate
- AWS SysOps Administrator - Associate
- AWS DevOps Engineer - Professional
- AWS Solutions Architect - Professional
- AWS Cloud Practitioner
А какой сертификат посоветуешь для начинающего DevOps инженера?
CJE экзамен как раз заскедулил)
Ух ты, у Дженкинс есть сертификация
как экзамен?
Как можно сложить весь jenkins с нужными плагинами и настройками в git?
Если только через SaaC. Пишешь ансибл плейбук, туда все втыкаешь. 5 минут и дженкинс развернут. Я так сделал)
Из практики, мы писали groovy скрипт и запускали его при установке jenkins.
Привет! Спасибо за полезные видео! Может подскажешь: я в VirtualBox поднимаю Vagrant Jenkins & K8s и у меня финальный стейдж деплой
stage("SSH Into k8s Server") {
def remote = [:]
remote.name = 'k8smaster'
remote.host = '192.168.50.4'
remote.user = 'vagrant'
remote.password = 'vagrant'
remote.allowAnyHosts = true
stage('Put k8s-spring-boot-deployment.yml onto k8smaster') {
sshPut remote: remote, from: 'k8s-spring-deployment.yml', into: '.'
}
stage('Deploy spring boot') {
sshCommand remote: remote, command: "kubectl apply -f k8s-spring-deployment.yml"
}
}
все копируется но команда не выполняется "bash: kubectl not found" то же если создать скрипт и его скопировать и запустить. Если я запускаю просто команду на сервере то собирается.
Не нахожу простого Pipeline плагина. Может его переименовали , подскажите пожалуйста, кто знает?
Не переименовали
@@ADV-IT Оказывается, если устанавливать рекомендованные плагины, то он будет в их числе. А я пытался его найти среди доступных для установки и не находил)
Благодарю, Денис!
я в двух уроках так подъе*нулся того чего нет ищите уже в установленных плагинах. 100% он уже у вас есть.
@@TheDerSliDer да-да)
{stage {"Like"}}
Лучше связочку Jenkins + SonarQube
с пайплайном сплошные проблемы на самом деле, особенно с запуском через неё шелл скриптов
Bilo bi zdorovo razskazatj kak konfigurirovatj sam Jenkins @ Day 0 s pomoshju tjipa Ansible. I tak zhe kak rabotatj s monorepozitorii.
Ну глянь уроки первые, там всё показываю, начиная с Установки Jenkins
@@ADV-IT Nea.. ja ne pro ustanovku. Tam vsjo ponjatno. A imenno konfiguracija bez izpolzovanie UI. Sozdanie polzovatelei, instalacija pluginov, toolov itd s pomoshju skriptov. Zapustil Tf... sozdal alje virtualku. Vidal output IP, hostname.. Zapustil Ansible i ustanovil sam Jenkins. A potom otkljuchaesh setup wizard i s pomoshju tovo zhe Ansibla zalivaesh polzovatelei, SSH kljuchi, i ostalnuju beleberdu dlja proekta i mozhet daze zapuskaesh iznachalnij build dlja proekta. Vsjo eto bez izpolzovanie UI a s pomoshju playbook i templeitov/scriptov.
U menja shas zadacha razvernutj vsju infrastrukturu do K8s i Bazel tolko izpolzuja skripti. Primerno predstavljaju shto nado budet kopatsa Jenkins XMLkah i pisatj kuchu Groovy... no... mutno kak to vsjo. + ne ponjatno kak rabotatj s monorepo gde pishetsa proekt pod WEB, Flutter, REST, Protobufs i kuchu melkih Go servisov. I esho poka tolkom ne ponjatnaja tema kakim obrazom sharitj raznie variables dlja Tf i Ansible naprimer. V dannij moment postavil Hashi-Vault s KV store po skolko i Ansible i TF mozhet ih chitatj. Nu.. samoe prostoe... alje domennoe imjo kotoroe ispolzuetsa kuchu mestah i tam i tam.
@@Oswee Есть урок про Jenkins cli
Денис, а ты видел такое? Как думаешь - оно котируется? www.cloudbees.com/jenkins/certification
Катируется, я всё никак не соберусь делать
На самом деле Денис специально делает ошибки, как-будто ты сам делаешь эти ошибки)
Не "ложится", а кладется. Денис, попробуйте писать текс перед записью видео, будет НАМНОГО лучше.
По тексту будет нудно. А мне очень нравятся его эти "...этот как его...". Или было даже вот так - "...эти как его, чтоб этого как его...". Вот тогда я раз 15 перематывал, чтоб перестать смеяться)
Денис, извини, но "ложатся" х*и и плитка только)))
но положим тебе благодарность за такие уроки. спасибо! теперь надо в боях тестировать всё вот это вот.
и да, гитлаб мне нравится больше.
Странно, что такая, почти быдлячая, манера подачи материала многим нравится, похоже что это уже тренд, т.к. таких IT-персонажей довольно много уже на ютубе.
а ты видел где-то лучше? не стесняйся, поделись ссылкой
Ошибка:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:
на самом jenkins сделал что бы команды докера запускались без sudo но всё равно в jenkins выдаёт эту ошибку , может кто знает как решить ?
usermod -aG docker jenkins
usermod -aG root jenkins
chmod 777 /var/run/docker.sock
Только так пошло
Спасибо!
Спасибо!