เริ่มต้นกับ Jenkins: ติดตั้งและตั้งค่า Jenkins
ในบทที่แล้ว เราได้เรียนรู้เกี่ยวกับแนวคิดของ CI/CD ซึ่งเป็นกระบวนการอัตโนมัติที่ช่วยให้การพัฒนาซอฟต์แวร์เป็นไปอย่างรวดเร็วและมีประสิทธิภาพ ในบทนี้ เราจะมาลงมือปฏิบัติจริง โดยการติดตั้งและตั้งค่า Jenkins ซึ่งเป็นเครื่องมือ CI/CD ที่ได้รับความนิยมอย่างมาก เพื่อเตรียมพร้อมสำหรับการสร้าง CI/CD Pipeline ของโปรเจกต์ PHP ของเรา
Jenkins คืออะไร?
Jenkins เป็น Open Source Automation Server ที่ช่วยให้เราสามารถทำ Automation ในขั้นตอนต่างๆ ของ Software Development Lifecycle (SDLC) ได้ ตั้งแต่การ Build, Test, ไปจนถึงการ Deploy พูดง่ายๆ คือ Jenkins เป็นเหมือนผู้ช่วยที่จะคอยทำงานซ้ำๆ ที่เราไม่อยากทำเอง ทำให้เรามีเวลาไปโฟกัสกับงานที่สำคัญกว่า
ทำไมต้องใช้ Jenkins?
- Automation: ลดงาน Manual และเพิ่มความเร็วในการพัฒนา
- Continuous Integration: รวมโค้ดจากนักพัฒนาหลายคนได้อย่างราบรื่น
- Continuous Delivery: Deploy ซอฟต์แวร์ไปยัง Environment ต่างๆ ได้อย่างอัตโนมัติ
- Extensibility: มี Plugins มากมายให้เลือกใช้ เพื่อเพิ่มความสามารถ
- Open Source: ใช้งานได้ฟรี และมี Community ที่แข็งแกร่ง
การติดตั้ง Jenkins
การติดตั้ง Jenkins สามารถทำได้หลายวิธี ขึ้นอยู่กับระบบปฏิบัติการที่เราใช้งาน ในบทความนี้ เราจะเน้นการติดตั้งบน Ubuntu/Debian Linux ซึ่งเป็นที่นิยมสำหรับการทำ Server
ขั้นตอนการติดตั้ง Jenkins บน Ubuntu/Debian
- ติดตั้ง Java: Jenkins ต้องการ Java Runtime Environment (JRE) ในการทำงาน ดังนั้นเราต้องติดตั้ง Java ก่อน
sudo apt update sudo apt install openjdk-11-jreตรวจสอบว่า Java ติดตั้งสำเร็จหรือไม่ โดยใช้คำสั่ง
java -version - เพิ่ม Jenkins Repository: เพิ่ม Jenkins Repository ลงในระบบ
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' - ติดตั้ง Jenkins: อัปเดต Package List และติดตั้ง Jenkins
sudo apt update sudo apt install jenkins - ตรวจสอบสถานะ Jenkins: ตรวจสอบว่า Jenkins ทำงานอยู่หรือไม่
sudo systemctl status jenkinsถ้า Jenkins ไม่ได้ทำงาน ให้เริ่ม Jenkins ด้วยคำสั่ง
sudo systemctl start jenkinsและตั้งให้ Jenkins เริ่มทำงานอัตโนมัติเมื่อ Server Boot ด้วยคำสั่งsudo systemctl enable jenkins
การเข้าถึง Jenkins Web Interface
หลังจากติดตั้ง Jenkins สำเร็จแล้ว เราสามารถเข้าถึง Jenkins Web Interface ได้ผ่านทาง Browser โดยพิมพ์ http://your_server_ip:8080 ในช่อง Address Bar (แทนที่ your_server_ip ด้วย IP Address ของ Server ที่ติดตั้ง Jenkins)
หน้าจอแรกที่ปรากฏ จะเป็นหน้าจอให้เราใส่ Initial Admin Password ซึ่ง Password นี้จะถูกเก็บไว้ใน File ที่ระบุไว้ในหน้าจอ (มักจะเป็น /var/lib/jenkins/secrets/initialAdminPassword) ให้ใช้คำสั่ง sudo cat /var/lib/jenkins/secrets/initialAdminPassword เพื่อดู Password
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
หลังจากใส่ Password แล้ว Jenkins จะให้เราเลือกว่าจะติดตั้ง Suggested Plugins หรือจะเลือก Plugins เอง (Select plugins to install) สำหรับผู้เริ่มต้น แนะนำให้เลือก "Install suggested plugins" เพื่อให้ Jenkins ติดตั้ง Plugins ที่จำเป็นสำหรับการใช้งานทั่วไป
การตั้งค่า Jenkins เบื้องต้น
หลังจากติดตั้ง Plugins เสร็จแล้ว Jenkins จะให้เราสร้าง Admin User คนแรก ให้กรอก Username, Password, Full Name และ Email Address ให้เรียบร้อย
หลังจากสร้าง Admin User แล้ว Jenkins จะให้เรา Configure Jenkins URL ซึ่งโดยปกติแล้วเราสามารถปล่อยให้เป็น Default ได้
เมื่อทำตามขั้นตอนทั้งหมดแล้ว เราก็จะได้เข้าสู่ Jenkins Dashboard ซึ่งเป็นหน้าหลักที่เราจะใช้ในการจัดการ Jenkins
การติดตั้ง Plugins ที่จำเป็น
Plugins เป็นส่วนสำคัญที่ช่วยเพิ่มความสามารถให้กับ Jenkins สำหรับโปรเจกต์ PHP เราอาจจะต้องติดตั้ง Plugins เพิ่มเติม เช่น
- PHP Plugin: สำหรับจัดการ PHP Code Quality และ Static Analysis
- Git Plugin: สำหรับ Integration กับ Git Repository
- Composer Plugin: สำหรับจัดการ Dependencies ด้วย Composer
- Email Extension Plugin: สำหรับส่ง Email Notifications
วิธีการติดตั้ง Plugins
- ไปที่ Jenkins Dashboard
- คลิกที่ "Manage Jenkins"
- คลิกที่ "Manage Plugins"
- ไปที่ Tab "Available"
- ค้นหา Plugins ที่ต้องการติดตั้ง
- เลือก Plugins ที่ต้องการ และคลิก "Install without restart" หรือ "Download now and install after restart"
หลังจากติดตั้ง Plugins เสร็จแล้ว Jenkins อาจจะต้อง Restart เพื่อให้ Plugins ทำงานได้อย่างถูกต้อง
สรุป
ในบทนี้ เราได้เรียนรู้วิธีการติดตั้งและตั้งค่า Jenkins ซึ่งเป็นเครื่องมือ CI/CD ที่สำคัญสำหรับโปรเจกต์ PHP ของเรา เราได้เรียนรู้วิธีการติดตั้ง Jenkins บน Ubuntu/Debian Linux, การเข้าถึง Jenkins Web Interface, การสร้าง Admin User และการติดตั้ง Plugins ที่จำเป็น ในบทต่อไป เราจะมาเรียนรู้วิธีการสร้าง Jenkins Job แรก เพื่อ Build โปรเจกต์ PHP ของเรา
คำศัพท์สำคัญ:
- CI/CD: Continuous Integration/Continuous Delivery
- Jenkins: Open Source Automation Server
- Plugin: ส่วนเสริมที่ช่วยเพิ่มความสามารถให้กับ Jenkins
- Job: Task ที่ Jenkins จะต้องทำ เช่น Build, Test, Deploy