چگونه می توان اولین خط لوله جنکینز را ایجاد کرد؟

راهنمای گام به گام برای ایجاد خط لوله جنکینز


چرا خط لوله جنکینز?

تحویل مداوم (CD) یک بخش اساسی از چرخه زندگی DevOps است.

این اطمینان را می دهد که توسعه دهندگان نرم افزار / برنامه همیشه در حال تولید هستند. برای این اتفاق می افتد ، هر زمان که کد به روز شود ، نیاز به ساخت ، آزمایش و استقرار مداوم دارد. این جایی است که جنکینز پیپلین وارد تصویر می شود.

در DevOps ، ادغام مداوم و تحویل مداوم (CI / CD) از طریق خط لوله جنکینز حاصل می شود. استفاده از Jenkins Pipeline برای CD به عرضه نرم افزار با نسخه های سریع تر و مکرر کمک می کند. این کمک می کند تا بازخورد را در هر نسخه بعدی وارد کنید.

خط لوله جنکینز چیست؟?

Jenkins Pipeline ترکیبی از مشاغل برای ارائه نرم افزار به طور مداوم با استفاده از جنکینز است.

فرض می کنم شما می دانید جنکینز چیست. اگر نه ، این را بررسی کنید دوره Udemy برای استاد جنکینز.

خط لوله Jenkins از چندین حالت یا مرحله تشکیل شده است ، و آنها به ترتیب یکی پس از دیگری اجرا می شوند. JenkinsFile یک فایل متنی ساده است که برای ایجاد خط لوله به عنوان کد در جنکینز استفاده می شود. این شامل کد به زبان اختصاصی Groovy Domain (DSL) است که نوشتن آن ساده است و قابل خواندن توسط انسان است.

در هر صورت می توانید JenkinsFile را بطور جداگانه اجرا کنید ، یا می توانید کد خط لوله را از طریق UI UI Jenkins نیز اجرا کنید. دو راه وجود دارد که می توانید با استفاده از جنکینز خط لوله ایجاد کنید.

  • اعلانی – یک روش جدید برای ایجاد خط لوله جنکینز. در اینجا شما می توانید کد شیارهای حاوی بلوک های “خط لوله” را بنویسید که در یک SCM بررسی می شود (مدیریت کد منبع)
  • نگارش شده – روش نوشتن کد شیار که کد در آن قرار گرفته است در بلوک های “گره”.

قبل از اینکه وارد نسخه ی نمایشی شویم ، اگر جنکینز را نصب نکرده اید ، لطفاً ابتدا آن را نصب کنید. اطمینان حاصل کنید که جنکینز را بر روی سیستم خود اجرا و اجرا می کند.

یک خط لوله Jenkins ایجاد کنید

اینگونه به نظر می رسد که یک جریان خط لوله Jenkins ، که شامل چندین مرحله بین توسعه دهندگان ایجاد یک نرم افزار (برنامه نویسی) و یک نرم افزار تحویل شده در تولید است.

خط لوله جنکینز

بیایید یک خط لوله اعلانی ایجاد کنیم.

در داشبورد جنکینز ، بر روی New item کلیک کنید. سپس یک نام کالا را وارد کنید ، به عنوان مثال “خط لوله اول” و پروژه “خط لوله” را انتخاب کنید. سپس بر روی ، OK کلیک کنید.

مورد جدید - خط لوله جنکینز

مطابق شکل زیر بر روی زبانه Pipeline کلیک کنید و کد JenkinsFile (کد Groovy) خود را در اینجا قرار دهید.

JenkinsFile Code

خط لوله
عامل هر
مراحل
مرحله (‘ساخت’) {
مراحل
سلام ، سلام ، GeekFlare. شروع به ساخت برنامه
}
}
مرحله (“تست”) {
مراحل
ورودی (“آیا می خواهید ادامه دهید؟”)
}
}
مرحله (“استقرار”) {
موازی {
مرحله (‘استقرار شروع’) {
مراحل
پژواک "اعزام را شروع کنید .."
}
}
مرحله (“اکنون مستقر می شوید”) {
عامل {
داکر {
reuseNode درست است
تصویر “nginx”
}
}

مراحل
پژواک "داکر ایجاد شده است"
}
}
}
}
مرحله (‘محصول’) {
مراحل
پژواک "برنامه محصول آماده است"
}

}
}
}

بگذارید بلوکهای فوق را توضیح دهم.

  • خط لوله block شامل کلیه دستورالعمل های ساخت ، آزمایش و تحویل نرم افزار است. این جزء اصلی خط لوله لوله جنکینز است.
  • یک عامل وظیفه دارد خط لوله را روی یک گره اجرا کند و یک فضای کاری برای خط لوله اختصاص دهد.
  • آ صحنه بلوکی است که مراحل ساخت ، آزمایش و استقرار برنامه را دارد. از مراحل برای تجسم فرآیندهای خط لوله جنکینز استفاده می شود.
  • آ گام یک کار واحد است که باید انجام شود ، به عنوان مثال ، ایجاد یک فهرست ، اجرای یک تصویر docker ، حذف یک پرونده و غیره.

کد Groovy در بالا ، من برای JenkinsFile استفاده می کنم. هر نماینده موجود به خط لوله اختصاص می یابد. سپس مرحله ساخت را تعریف می کنم و یک مرحله ساده اکو را انجام می دهم. سپس مرحله تست را تعریف کردم که در آن مرحله سؤال می شود که آیا می خواهید ادامه دهید یا نه. پس از آن ، من یک مرحله استقرار ایجاد کرده ام که دو مرحله دیگر نیز در آن به صورت موازی اجرا می شود. استقرار مرحله شروع یک مرحله با دستور echo دارد و استقرار اکنون گامی دارد که یک تصویر docker از Nginx را روی گره می کشد. سرانجام ، یک مرحله Prod با یک مرحله ساده اکو انجام می شود.

خط لوله فوق الذکر دارای مراحلی است که مراحل ساده ای برای درک نحوه عملکرد شما دارد. پس از یادگیری نحوه ایجاد خط لوله ، می توانید پیچیدگی بیشتری اضافه کنید و همچنین خطوط لوله پیچیده ای نیز ایجاد کنید.

پس از وارد کردن کد در تب Pipeline ، بر روی Apply and Save کلیک کنید. در آخر ، بر روی Build Now کلیک کنید تا ساخت خط لوله جنکینز که اخیراً ایجاد کردید را شروع کنید.

اکنون بسازید

اینگونه است که رابط کاربری هنگام اجرای خط لوله به نظر می رسد. اگر تمام مراحل را به درستی دنبال کرده باشید ، ساخت شما موفقیت آمیز خواهد بود ، و یک رنگ آبی برای ساخت را نشان می دهد (شماره 27). اگر در ساخت و ساز اشتباهاتی انجام شود ، رنگ قرمز را به ساختمان می دهد (شماره 27).

جنکینز ساخت 27

حال بر روی ساخت 27 کلیک کنید و سپس بر روی Console Output کلیک کنید تا بررسی کنید که دقیقاً در back-end چه اتفاقی افتاده است.

جنکینز ساخت

به این ترتیب خروجی با پایان یافتن پیام SUCCESS به پایان می رسد.

خروجی کنسول موفقیت

توسط کاربر geekflare شروع شده است
در حال اجرا در سطح دوام: MAX_SURVIVABILITY
[خط لوله] شروع خط لوله
گره [خط لوله]
در حال اجرا روی جنکینز در / var / lib / jenkins / فضای کاری / خط لوله اول
[خط لوله] {
مرحله [خط لوله]
[خط لوله] {(ساخت)
[خط لوله] پژواک
سلام ، GeekFlare. شروع به ساخت برنامه.
[خط لوله]}
[خط لوله] // مرحله
مرحله [خط لوله]
[خط لوله] {(تست)
ورودی [خط لوله]
آیا شما می خواهید ادامه دهید?
ادامه دهید یا متوقف شوید
تأیید شده توسط geekflare
[خط لوله]}
[خط لوله] // مرحله
مرحله [خط لوله]
[خط لوله] {(استقرار)
[خط لوله] موازی
[خط لوله] {(شعبه: استقرار شروع)
[خط لوله] {(شعبه: اکنون مستقر می شود)
مرحله [خط لوله]
[خط لوله] {(استقرار شروع)
مرحله [خط لوله]
[خط لوله] {(اکنون مستقر می شوید)
[خط لوله] getContext
[خط لوله] isUnix
[خط لوله] sh
[خط لوله] پژواک
اعزام را شروع کنید ..
[خط لوله]}
+ docker inspect -f. nginx
[خط لوله] // مرحله
[خط لوله]}

خطا: هیچ موردی وجود ندارد: nginx
[خط لوله] isUnix
[خط لوله] sh
+ docker pull nginx
استفاده از برچسب پیش فرض: جدیدترین
آخرین: در حال کشیدن از کتابخانه / nginx
8d691f585fa8: کشیدن لایه fs
5b07f4e08ad0: کشیدن لایه fs
abc291867bca: با کشیدن لایه fs
abc291867bca: تأیید چک
abc291867bca: بارگیری کامل
5b07f4e08ad0: تأیید چک
5b07f4e08ad0: بارگیری کامل است
8d691f585fa8: تأیید چک
8d691f585fa8: بارگیری کامل است
8d691f585fa8: بکشید کامل
5b07f4e08ad0: کامل بکشید
abc291867bca: کامل بکش
هضم: sha256: 922c815aa4df050d4df476e92daed4231f466acc8ee90e0e774951b0fd7195a4
وضعیت: تصویر جدیدتر برای nginx بارگیری شده: آخرین
[خط لوله] باDockerContainer
به نظر نمی رسد جنکینز درون یک ظرف در حال اجرا است
docker $ run -t -d -u 125: 131 -w "/ var / lib / جنکینز / فضای کاری / خط لوله اول" -v "/ var / lib / جنکینز / فضای کاری / خط لوله اول: / var / lib / جنکینز / فضای کار / خط لوله اول: rw ، z" -v "/ var / lib / جنکینز / فضای کاری / اول [ایمیل محافظت شده]: / var / lib / جنکینز / فضای کاری / اول [ایمیل محافظت شده]: 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 گربه
docker top 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943 -o pid، comm
[خط لوله] {
[خط لوله] پژواک
داکر ایجاد شده است
[خط لوله]}
$ docker stop –time = 1 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
docker rm -f 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
[خط لوله] // withDockerContainer
[خط لوله]}
[خط لوله] // مرحله
[خط لوله]}
[خط لوله] // موازی
[خط لوله]}
[خط لوله] // مرحله
مرحله [خط لوله]
[خط لوله] {(محصول)
[خط لوله] پژواک
برنامه محصول آماده است
[خط لوله]}
[خط لوله] // مرحله
[خط لوله]}
[خط لوله] // گره
[خط لوله] انتهای خط لوله
به پایان رسید: موفقیت

خط لوله Jenkins بالا یک تصویر docker از Nginx ایجاد کرده است. با اجرای دستور زیر می توانید آن را تأیید کنید. مشاهده می کنید که تصویر docker Nginx نیز ذکر شده است.

[ایمیل محافظت شده]: image $ docker تصویر ls
اندازه ایجاد شده ID ID REPOSITORY TAG
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