Jenkins เป็นเครื่องมือ Automation Server ที่มีโอเพนซอร์สและเป็นที่นิยมอย่างมากในวงการ DevOps ทั่วโลก ช่วยให้ทีมพัฒนาซอฟต์แวร์สามารถดำเนินการ Continuous Integration (CI) และ Continuous Deployment (CD) ได้อย่างอัตโนมัติและมีประสิทธิภาพ
Jenkins ช่วยให้ผู้พัฒนา Build, Test และ Deploy โปรแกรมของพวกเขาโดยอัตโนมัติหลังจากที่พวกเขา Commit Code ไปยัง Repository ช่วยลดข้อผิดพลาดด้วยมนุษย์ เร่งความเร็วในการ Release และเพิ่มคุณภาพของซอฟต์แวร์โดยรวม
Jenkins คืออะไร และทำไมต้องใช้ในทีม DevOps
Jenkins เป็นเซิร์ฟเวอร์ Automation แบบ Open Source ที่เขียนด้วย Java ได้รับการพัฒนาต่อยอดจาก Hudson Project และปัจจุบันเป็นหนึ่งในเครื่องมือ CI/CD ที่ได้รับความนิยมสูงที่สุดในโลก โดยมีผู้ใช้งานมากกว่า 300,000 องค์กรทั่วโลก
ในทีม DevOps Jenkins ทำหน้าที่เป็นศูนย์กลางการทำงาน โดยเชื่อมต่อกับ Version Control System เช่น Git, GitHub, GitLab และ Trigger การ Build, Test และ Deploy โดยอัตโนมัติเมื่อมีการเปลี่ยนแปลง Code
System Requirements สำหรับ Jenkins บน Cloud VPS
ก่อนที่จะติดตั้ง Jenkins บน Cloud VPS ของคุณ ต้องแน่ใจว่าเซิร์ฟเวอร์ของคุณมีข้อกำหนดต่ำสุดดังต่อไปนี้
| ข้อกำหนด | ค่าที่แนะนำ |
|---|---|
| CPU | 2 cores ขึ้นไป |
| RAM | 4GB ขึ้นไป (8GB สำหรับ Production) |
| Storage | 20GB ขึ้นไป |
| Operating System | Ubuntu 20.04 LTS หรือ Debian 11 |
| Java | OpenJDK 11 หรือ 17 |
ขั้นตอนการติดตั้ง Jenkins บน Ubuntu/Debian
ขั้นตอนที่ 1: อัปเดต System Package
sudo apt update
sudo apt upgrade -y
ขั้นตอนที่ 2: ติดตั้ง Java
Jenkins ต้องการให้ Java ติดตั้งบนระบบก่อน ให้ติดตั้ง OpenJDK ดังต่อไปนี้
sudo apt install openjdk-17-jdk -y
java -version
ขั้นตอนที่ 3: เพิ่ม Jenkins Repository
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
ขั้นตอนที่ 4: ติดตั้ง Jenkins
sudo apt update
sudo apt install jenkins -y
ขั้นตอนที่ 5: เริ่มใช้งาน Jenkins Service
sudo systemctl start jenkins
sudo systemctl enable jenkins
sudo systemctl status jenkins
การตั้งค่าเริ่มต้น (Initial Setup Wizard)
เมื่อติดตั้ง Jenkins เสร็จแล้ว ให้เปิดเว็บเบราว์เซอร์และไปที่ URL ของ Jenkins โดยใช้ที่อยู่ IP ของ Cloud VPS
http://your-vps-ip:8080
Jenkins จะแสดง Initial Setup Wizard ขอให้คุณใส่ Unlock Password ที่พบได้ในไฟล์ต่อไปนี้
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
คัดลอก Password นี้ วาง (Paste) ลงใน Web Interface แล้วคลิก Continue จากนั้นเลือก “Install suggested plugins” เพื่อติดตั้ง Plugins ที่แนะนำ แล้วสร้าง Admin User ของคุณ
สร้าง Freestyle Job แรก
Freestyle Job เป็นรูปแบบโครงการพื้นฐานที่สุดใน Jenkins เหมาะสำหรับการเริ่มต้น
- ไปที่ Jenkins Dashboard คลิก “New Item”
- ใส่ชื่อ Job เช่น “Hello-World” เลือก “Freestyle project” คลิก OK
- ไปที่ส่วน “Build Steps” คลิก “Add build step” เลือก “Execute shell”
echo "Hello World from Jenkins!"
echo "Build Number: $BUILD_NUMBER"
echo "Build Timestamp: $BUILD_TIMESTAMP"
คลิก “Save” แล้วคลิก “Build Now” เพื่อทดลองรัน Jenkins จะแสดงผล Build Output ใน “Console Output”
สร้าง Pipeline Job แรก
Pipeline Job เป็นรูปแบบขั้นสูงกว่าที่อนุญาตให้กำหนด Build Process ด้วย Code (Infrastructure as Code)
- คลิก “New Item” ใส่ชื่อ เช่น “Hello-Pipeline” เลือก “Pipeline” คลิก OK
- ในส่วน “Pipeline” เลือก “Pipeline script” แล้วใส่ Groovy Code
pipeline {
agent any
stages {
stage('Greeting') {
steps {
echo 'Hello from Jenkins Pipeline!'
}
}
stage('Build') {
steps {
echo 'Building...'
sh 'echo "Build completed at $(date)"'
}
}
stage('Test') {
steps {
echo 'Testing...'
}
}
stage('Deploy') {
steps {
echo 'Deploying...'
}
}
}
post {
success { echo 'Pipeline executed successfully!' }
failure { echo 'Pipeline execution failed!' }
}
}
คลิก “Save” แล้ว “Build Now” Jenkins จะแสดง Visual Pipeline และผลการ Execute ในแต่ละ Stage
Plugins สำคัญที่ควรติดตั้ง
- Git Plugin — เชื่อมต่อ Jenkins กับ Git Repository
- GitHub Integration Plugin — รวม Jenkins กับ GitHub
- Docker Plugin — ใช้ Docker ใน Jenkins Pipeline
- Blue Ocean Plugin — UI สวยงามสำหรับ Pipeline
- Email Extension Plugin — ส่งอีเมลจาก Jenkins
- Slack Notification Plugin — แจ้งเตือนผ่าน Slack
- Role-based Authorization Strategy — จัดการสิทธิ์ผู้ใช้
ติดตั้ง Plugins ได้ที่ “Manage Jenkins” > “Manage Plugins” แท็บ “Available”
การตั้งค่า Security และ Nginx Reverse Proxy
เพื่อความปลอดภัยใน Production ให้ตั้งค่า Nginx Reverse Proxy ให้ Jenkins ทำงานบน Port 80/443
sudo apt install nginx -y
สร้างไฟล์ Config สำหรับ Jenkins:
upstream jenkins {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name jenkins.example.com;
location / {
proxy_pass http://jenkins;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}
sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/jenkins
sudo nginx -t
sudo systemctl restart nginx
# ติดตั้ง HTTPS ด้วย Let's Encrypt
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d jenkins.example.com
สรุป
ในบทความนี้ เราได้เรียนรู้การติดตั้ง Jenkins บน Cloud VPS ครบทุกขั้นตอน ตั้งแต่การติดตั้ง Java และ Jenkins การตั้งค่าเริ่มต้น การสร้าง Freestyle Job และ Pipeline Job แรก การติดตั้ง Plugins ที่จำเป็น และการตั้งค่า Security ด้วย Nginx Reverse Proxy
หากต้องการเซิร์ฟเวอร์ที่มีประสิทธิภาพสำหรับรัน Jenkins และระบบ DevOps อื่นๆ Cloud VPS ของ ผู้ให้บริการโฮสติ้ง พร้อมให้บริการด้วยทีม Support ภาษาไทยที่มีประสบการณ์
