Как да създадете първия си газопровод Jenkins?

Стъпка по стъпка ръководство за създаване на газопровода Дженкинс


Защо Дженкинс тръбопровод?

Непрекъснатата доставка (CD) е съществена част от жизнения цикъл на DevOps.

Той гарантира, че разработчиците на софтуер / приложения винаги са готови за производство. За да се случи това, всеки път, когато кодът се актуализира, той трябва да бъде изграден, тестван и внедрен непрекъснато. Това е мястото, където Дженкинс Пипелайн влиза в снимката.

В DevOps се осъществява непрекъсната интеграция и непрекъсната доставка (CI / CD) чрез тръбата на Jenkins. Използването на Jenkins Pipeline за CD помага да се достави софтуерът с по-бързи и чести издания. Това помага да се включат отзивите във всяко следващо издание.

Какво е Дженкинс тръбопровод?

Jenkins Pipeline е комбинация от работни места за непрекъснато предоставяне на софтуер, използвайки Jenkins.

Предполагам, че знаете какво е Дженкинс. Ако не, проверете това Удеми курс за овладяване на Дженкинс.

Тръбопроводът на Дженкинс се състои от няколко състояния или етапи и те се изпълняват в последователност едно след друго. JenkinsFile е прост текстов файл, който се използва за създаване на тръбопровод като код в Дженкинс. Той съдържа код в езика за специфичен домен на Groovy (DSL), който е лесен за писане и четим от човека.

Или можете да стартирате JenkinsFile отделно, или можете да стартирате кода на тръбопровода от Jenkins Web UI също. Има два начина да създадете тръбопровод с помощта на Дженкинс.

  • Декларация – нов начин за създаване на тръбопровода Дженкинс. Тук пишете groovy код, съдържащ “тръбопроводни” блокове, който се проверява в SCM (Управление на изходния код)
  • Сценарист – начин на писане на groovy код, при който кодът е дефиниран в блоковете „възел“.

Преди да влезем в демонстрацията, ако не сте инсталирали Jenkins, моля, инсталирайте я първо. Уверете се, че разполагате с Дженкинс и работи в системата си.

Създайте тръба на Дженкинс

Ето как изглежда потока на тръбопровода на Дженкинс, който се състои от множество етапи между разработчиците, създаващи софтуер (кодиране) и софтуер, доставен при производството.

Дженкинс тръбопровод

Нека създадем декларативен тръбопровод.

На таблото за управление на Jenkins щракнете върху New Item. След това въведете име на елемент, например „Първа тръбопровод“ и изберете проекта „Трубопровод“. След това кликнете върху, OK.

Нов артикул - тръбата на Дженкинс

Кликнете върху раздела Pipeline, както е показано на изображението по-долу, и поставете своя JenkinsFile код (Groovy Code) тук.

Код на Дженкинс

тръбопровод {
агент всеки
етапи {
етап („Изграждане“) {
стъпки {
ехо ‘Здравей, GeekFlare. Започва да изгражда приложението. ‘
}
}
етап (“Тест”) {
стъпки {
input („Искате ли да продължите?“)
}
}
етап („Разгръщане“) {
паралелен {
етап (“Стартиране на внедряването”) {
стъпки {
ехо "Стартирайте разгръщането .."
}
}
етап („Разгръщане сега“) {
агент {
докер {
reuseNode true
изображение „nginx“
}
}

стъпки {
ехо "Докер създаден"
}
}
}
}
етап (‘Прод’) {
стъпки {
ехо "Приложението е Prod Ready"
}

}
}
}

Нека обясня горните блокове.

  • Най- тръбопровод блокът се състои от всички инструкции за изграждане, тестване и доставяне на софтуер. Той е ключовият компонент на тръбопровода на Дженкинс.
  • Една агент се назначава за изпълнение на тръбопровода на възел и разпределяне на работно пространство за тръбопровода.
  • А сцена е блок, който има стъпки за изграждане, тестване и разгръщане на приложението. Етапите се използват за визуализиране на процесите на газопровода Дженкинс.
  • А стъпка е единична задача, която трябва да се изпълни, например, създаване на директория, пускане на изображение на докер, изтриване на файл и т.н..

Кодът Groovy по-горе, който използвам за JenkinsFile. Всеки наличен агент се назначава в тръбопровода. Тогава дефинирам сцената на Build и изпълнявам обикновена ехо стъпка. Тогава дефинирах етап на тест, където стъпката ви пита дали искате да продължите или не. След това създадох етап Deploy, който има още два етапа в него, работещ успоредно. Началният етап на внедряването има стъпка с команда echo, а разполагането вече има стъпка, която изтегля изображение на докер на Nginx на възела. И накрая, има Prod етап с проста ехо стъпка.

Гореописаният тръбопровод има етапи, които имат лесни стъпки, за да разберете как работи. След като научите как да създадете тръбопровод, можете да добавите повече сложност и да създадете и сложни тръбопроводи.

След като имате кода в раздела Pipeline, щракнете върху Apply и Save. И накрая, щракнете върху Build Now, за да започнете да изграждате тръбата на Jenkins, която току-що създадохте.

Изградете сега

Ето как ще изглежда потребителският интерфейс, когато тръбопроводът работи. Ако сте последвали правилно всички стъпки, вашата компилация ще бъде успешна и тя показва син цвят за изграждането (# 27). Ако има грешки в компилацията, тя ще даде червен цвят на компилацията (# 27).

Дженкинс Билд 27

Сега кликнете върху # 27 build и след това щракнете върху Console Output, за да проверите какво точно се е случило в задния край, когато се изпълни.

Дженкинс Билд

Ето как ще изглежда изходът, завършващ със съобщение за успех.

Изход на конзолата за успех

Започната от потребител geekflare
Работи в ниво на издръжливост: MAX_SURVIVABILITY
[Pipeline] Начало на тръбопровода
[Pipeline] възел
Работи на Jenkins в / var / lib / jenkins / работно пространство / First Pipeline
[Тръбопровод] {
[Тръбопровод] етап
[Тръбопровод] {(изграждане)
[Тръбопровод] ехо
Здравей, GeekFlare. Започва да изгражда приложението.
[Тръбопровод]}
[Тръбопровод] // етап
[Тръбопровод] етап
[Тръбопровод] {(Тест)
[Pipeline] вход
Искаш ли да продължиш?
Продължете или прекратете
Одобрен от geekflare
[Тръбопровод]}
[Тръбопровод] // етап
[Тръбопровод] етап
[Тръбопровод] {(внедряване)
[Тръбопровод] паралелен
[Pipeline] {(клон: стартиране на стартирането)
[Pipeline] {(Клон: Разгръщане сега)
[Тръбопровод] етап
[Pipeline] {(Разгърнете старта)
[Тръбопровод] етап
[Pipeline] {(внедряване сега)
[Pipeline] getContext
[Pipeline] isUnix
[Тръбопровод] ш
[Тръбопровод] ехо
Стартирайте разгръщането ..
[Тръбопровод]}
+ докер инспектира -f. Nginx
[Тръбопровод] // етап
[Тръбопровод]}

Грешка: Няма такъв обект: nginx
[Pipeline] isUnix
[Тръбопровод] ш
+ докер издърпайте nginx
Използване на маркер по подразбиране: последно
последно: Издърпване от библиотека / nginx
8d691f585fa8: Издърпване на fs слой
5b07f4e08ad0: Издърпване на fs слой
abc291867bca: Издърпване на fs слой
abc291867bca: Проверка на контролната сума
abc291867bca: Изтеглянето завърши
5b07f4e08ad0: Проверка на контролната сума
5b07f4e08ad0: Изтеглянето завърши
8d691f585fa8: Проверка на контролната сума
8d691f585fa8: Изтеглянето завърши
8d691f585fa8: Издърпайте в комплект
5b07f4e08ad0: Издърпайте в комплект
abc291867bca: Издърпайте в комплект
Дайджест: sha256: 922c815aa4df050d4df476e92daed4231f466acc8ee90e0e774951b0fd7195a4
Състояние: Изтеглено по-ново изображение за nginx: най-ново
[Pipeline] сDockerContainer
Дженкинс изглежда не работи в контейнер
$ docker run -t -d -u 125: 131 -w "/ var / lib / jenkins / работно пространство / First Pipeline" -V "/ var / lib / jenkins / работно пространство / първи тръбопровод: / var / lib / jenkins / работно пространство / първи тръбопровод: rw, z" -V "/ Var / ИЪ / Дженкинс / работно място / First [Имейл защитен]: / Var / ИЪ / Дженкинс / работно място / First [Имейл защитен]: RW, Z" -e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** nginx cat
$ docker top 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943 -eo pid, comm
[Тръбопровод] {
[Тръбопровод] ехо
Докер създаден
[Тръбопровод]}
$ docker stop –time = 1 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
$ docker rm -f 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
[Pipeline] // сDockerContainer
[Тръбопровод]}
[Тръбопровод] // етап
[Тръбопровод]}
[Тръбопровод] // паралелно
[Тръбопровод]}
[Тръбопровод] // етап
[Тръбопровод] етап
[Тръбопровод] {(Prod)
[Тръбопровод] ехо
Приложението е Prod Ready
[Тръбопровод]}
[Тръбопровод] // етап
[Тръбопровод]}
[Тръбопровод] // възел
[Pipeline] Край на тръбопровода
Завършен: УСПЕХ

Горепосоченият Jenkins Pipeline създаде изображение на докер на Nginx. Можете да потвърдите това, като изпълните командата по-долу. Можете да видите изображението на докер Nginx също е изброено.

[Имейл защитен]: ~ $ docker image ls
РЕПОЗИТОРИЧЕН ИДИЖ НА ИЗОБРАЖЕНИЕ ИЗГРАЖДЕН РАЗМЕР
nginx последна 540a289bab6c преди 2 седмици 126MB
httpd най-късно 7d85cc3b2d80 преди 2 месеца 154MB
redis последна f7302e4ab3a8 преди 2 месеца 98.2MB
geekflare_mongodb най-новите 095d17727ca0 преди 3 месеца 325MB

заключение

Надявам се това ви дава представа за Газопровод Дженкинс ползи и как можете да създадете такава. Горното е проста демонстрация, а най-добрият начин да се научите е чрез опит за изграждане на сложни тръбопроводи.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map