آنچه در این مقاله میخوانید
نحوه نصب jenkins در اوبونتو 22.04
۲۳ اردیبهشت ۱۴۰۴
Jenkins یک راهحل اوپنسورس و رایگان است که بهعنوان یک سرور اتوماسیون، رویکرد یکپارچهسازی مداوم (CI) و تحویل مداوم (CD) را فراهم میکند. این ابزار خودکارسازی مراحل مختلف توسعه نرمافزار، از جمله تست، ساخت و استقرار را انجام میدهد، تا شما بتوانید فرایندهای توسعه را به صورت خودکار و سریعتر پیش ببرید.
برای درک بهتر Jenkins، فرض کنید چندین برنامهنویس در یک تیم دارید که باید روی یک پروژه بهصورت آنلاین و همزمان کار کنند. اگر هر کدام از اعضای تیم بهطور جداگانه بر روی پروژه نظارت کنند، ممکن است نتیجه کار بهخوبی پیش نرود و با مشکلاتی مثل باگها و خطاهای مختلف مواجه شوید. در این حالت، برای رفع این مشکلات باید چندین روز وقت صرف کنید تا بتوانید همه چیز را مثل روز اول درست کنید! برای چنین چالشهایی میتونید از Jenkins برای پیادهسازی یک فرآیند CI/CD خودکار استفاده کنید. در این آموزش، نحوه نصب Jenkins روی اوبونتو 22.04 را یاد خواهید گرفت. تا پایان همراه ما باشید.

پیشنیازها
برای درک بهتر این آموزش، به موارد زیر نیاز دارید:
- یک سرور اوبونتو 22.04 که با یک کاربر(non-root) و با دسترسی sudo پیکربندی شده و فایروال آن طبق راهنمای اولیه نصب سرور اوبونتو 22.04 تنظیم شده باشد. پیشنهاد میکنیم که حداقل 1 گیگابایت رم داشته باشید.
- Oracle JDK 11 نصب شده، که میتوانید طبق آموزش نصب OpenJDK روی اوبونتو 22.04، آن را نصب کنید.
در ادامه میخوانید:
- مرحله اول: نصب Jenkins
- مرحله دوم: راه اندازی Jenkins
- مرحله سوم: باز کردن پورت فایروال
- مرحله چهارم: پیکربندی Jenkins
- جمعبندی
- سوالات متداول
مرحله اول: نصب Jenkins
برای نصب آخرین نسخه Jenkins که شامل جدیدترین اصلاحات و ویژگیها است، بهتر است از پکیجهای رسمی پروژه استفاده کنید، زیرا نسخهای که در پکیجهای پیشفرض اوبونتو موجود است معمولا قدیمی است.
بنابراین، برای اضافه کردن کلید مخزن Jenkins به سیستم خود، دستور زیر را وارد کنید:
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key |sudo gpg --dearmor -o /usr/share/keyrings/jenkins.gpg
در دستور بالا، برای تبدیل کلید GPG به فرمت قابل شناسایی توسط apt
، از دستور gpg --dearmor
استفاده میشود.
حالا باید آدرس مخزن پکیجهای دبیان Jenkins را به فایل sources.list
سرورتان اضافه کنید:
sudo sh -c 'echo deb [signed-by=/usr/share/keyrings/jenkins.gpg] http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
برای اطمینان از اینکه apt
فایلهای موجود در مخزن Jenkins را با استفاده از کلید GPG که دانلود کردید، بررسی میکند، باید قسمت [signed-by=/usr/share/keyrings/jenkins.gpg]
را به مخزن اضافه کنید:
اضافه کردن مخزن Jenkins به همراه کلید GPG
برای اضافه کردن آدرس مخزن همراه با گزینه signed-by
که اشاره به کلید GPG دانلود شده دارد، دستور زیر را وارد کنید:
echo "deb [signed-by=/usr/share/keyrings/jenkins.gpg] http://pkg.jenkins.io/debian/ stable main" | sudo tee -a /etc/apt/sources.list
بروزرسانی مخازن
حالا که مخزن جدید به فایل sources.list
اضافه شده، باید از دستور apt update
برای بهروزرسانی مخازن استفاده کنید تا سیستم شما از مخزن جدید استفاده کند:
sudo apt update
اینکار باعث میشود، سیستم شما از مخزن رسمی Jenkins پشتیبانی کند و بتوانید به آخرین نسخه پکیجها دسترسی داشته باشید.
نصب Jenkins و وابستگیهایش
برای نصب Jenkins و وابستگیهای آن، کافیست دستور زیر را وارد کنید:
sudo apt install jenkins
حالا Jenkins با تمام وابستگیهایش نصب روی سرور مجازی اوبونتو نصب شده است.
برای آشنایی کامل با نحوه راهاندازی Docker Compose از طریق Ansible در اوبونتو، مقاله زیر را از دست ندهید.
راهاندازی Docker Compose از طریق Ansible
مرحله دوم: راه اندازی Jenkins
در این مرحله برای اطمینان از این که Jenkins بهدرستی نصب شده، میتوانید وضعیت سرویس Jenkins را با دستور زیر چک کنید:
sudo systemctl status jenkins
اگر Jenkins بهدرستی نصب شده باشد، خروجی شبیه این خواهید داشت:
● jenkins.service - Jenkins Continuous Integration Server
Loaded: loaded (/etc/systemd/system/jenkins.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2024-03-30 12:30:00 UTC; 1h 25min ago
Docs: https://www.jenkins.io/doc/
Main PID: 12345 (java)
Tasks: 50 (limit: 4915)
Memory: 2.5G
CGroup: /system.slice/jenkins.service
└─12345 /usr/bin/java -jar /usr/share/jenkins/jenkins.war
Mar 30 12:30:00 your-server-name systemd[1]: Started Jenkins Continuous Integration Server.
برای دسترسی به Jenkins از طریق مرورگر وب و تکمیل مراحل تنظیمات اولیه، باید قوانین فایروال سرور خود را بهگونهای تنظیم کنید که پورت مورد نیاز برای Jenkins (پورت پیشفرض 8080) باز باشد.
برای آشنایی کامل با انسیبل و ویژگیهای آن، مقاله زیر را مطالعه کنید.
Ansible چیست؟
مرحله سوم: باز کردن پورت فایروال
برای تنظیم فایروال UFW و باز کردن پورت 8080 (که بهطور پیشفرض برای Jenkins استفاده میشود)، مراحل زیر را دنبال کنید:
برای باز کردن پورت 8080
با استفاده از ufw
، دستور زیر را وارد کنید:
sudo ufw allow 8080
اگر میخواهید فقط از آدرسهای خاصی به پورت 8080
دسترسی داشته باشید، میتوانید قوانین دقیقتری تنظیم کنید.
برای مثال، برای اجازه دسترسی فقط از یک آدرس IP خاص:
sudo ufw allow from <your_ip_address> to any port 8080
به جای <your_ip_address>
, آدرس IP خود را وارد کنید.
وضعیت فایروال و قوانین فعال را با دستور زیر بررسی کنید:
sudo ufw status
خروجی باید مشابه به این باشد که پورت 8080
باز است:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
8080 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
8080 (v6) ALLOW Anywhere (v6)
تا اینجا، Jenkins نصب شده و فایروال تنظیم شده، شما مراحل نصب را بهطور کامل انجام دادید.
همین الان، بدون کمترین پیچیدگی، سرور مجازی خودتون رو در کمتر از ۳۰ ثانیه، راهاندازی کنید.
✅ عملکرد پایدار ✅ ترافیک نامحدود ✅ هزینه بهصرفه
خرید سرور مجازی ابری
مرحله چهارم: پیکربندی Jenkins
در این مرحله، برای راهاندازی Jenkins، به آدرس پیشفرض آن روی پورت 8080
با استفاده از نام دامنه یا آدرس IP سرور خود بروید: http://your_server_ip_or_domain:8080
در این مرحله، صفحه Unlock Jenkins را خواهید دید که محل کلمه عبور اولیه را برای شما نشان میدهد:

در پنجره ترمینال، از دستور cat
برای نمایش کلمه عبور استفاده کنید:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
کلمه عبور32 کاراکتری حروف و اعداد را از ترمینال کپی کرده و در فیلد Administrator password قرار دهید، سپس روی گزینه Continue کلیک کنید.
در صفحه بعدی، گزینهای برای نصب پلاگینهای پیشنهادی یا انتخاب پلاگینهای خاص نمایش داده میشود.

در این صفحه، گزینه Install suggested plugins را انتخاب میکنیم، که فرآیند نصب پلاگینها را بلافاصله آغاز کند.

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

نام و کلمهعبور برای کاربر خود وارد کنید:

پس از آن، صفحهای به نام Instance Configuration نمایش داده میشود که از شما میخواهد تا URL مورد نظر برای نمونه Jenkins خود را تأیید کنید.
دراینجا باید نام دامنه سرور یا آدرس IP سرور خود را تأیید کنید.

پس از تأیید اطلاعاتتان، روی گزینه Save and Finish کلیک کنید. سپس صفحهای برای تأیید دریافت خواهید کرد که نوشته !Jenkins is Ready را نمایش میدهد:

روی گزینه Start using Jenkins کلیک کنید تا به داشبورد اصلی Jenkins منتقل شوید.

تبریک:) در این مرحله، شما Jenkins با موفقیت روی سرور مجازی اوبونتو نصب کردید.
جمعبندی
در این آموزش، شما Jenkins را از طریق پکیجهای رسمی پروژه نصب کردید، سرور را راهاندازی کرده و فایروال را پیکربندی کردید. سپس یک کاربر مدیر ایجاد کرده و تنظیمات اولیه را انجام دادید. حالا نصب Jenkins بهطور کامل تکمیل شده و میتوانید به راحتی شروع به استفاده از Jenkins و کاوش در قابلیتهای آن برای اتوماسیون پروژههای خود کنید.
برای آشنایی کامل با کوبرنتیز (Kubernetes) و چگونگی کارکرد آن، مقاله زیر را از دست ندهید.
کوبرنتیز (Kubernetes) چیست؟
سوالات متداول
Jenkins چیست و چه کاربردهایی دارد؟
Jenkins یک ابزار متنباز برای اتوماسیون فرایندهای یکپارچهسازی مداوم (CI) و تحویل مداوم (CD) است. این ابزار به شما کمک میکند تا فرایندهای ساخت، تست، و استقرار نرمافزار را خودکار کنید.
تفاوت Ansible و Jenkins در چیست؟
Ansible و Jenkins هر دو ابزارهایی قدرتمند برای اتوماسیون هستند، اما کاربردهای متفاوتی دارند. Ansible بیشتر برای پیکربندی و مدیریت سرورها استفاده میشود؛ به عبارتی، برای تنظیم و مدیریت سیستمها بهصورت خودکار. اما Jenkins یک ابزار اتوماسیون برای فرایندهای یکپارچهسازی مداوم (CI) و تحویل مداوم (CD) نرمافزار است که کمک میکند تا فرایندهای ساخت، تست و استقرار نرمافزار بهصورت خودکار و بدون خطا انجام شوند. در واقع، Ansible بیشتر برای مدیریت زیرساختهاست، در حالی که Jenkins برای خودکارسازی چرخه توسعه نرمافزار کاربرد دارد.
Jenkins فقط برای کارهای اوتوماسیون مناسب است؟
بله؛ اکثریت کاربرد های آن برای کارهای اوتوماسیون میباشد.
آیا ارزیابی پروژه را تنها با Jenkins میتواند انجام داد؟
بله، هر عملیاتی که با Jenkins انجام شود، برای بهبود و ارزیابی پروژه مفید واقع میشود.