แชร์ประสบการณ์ การลง Jenkins บน Ubuntu

TaRa Wongsansee
Nextzy
Published in
3 min readJun 8, 2018
ปล . http://www.whiteboardcoder.com/2015/08/install-and-setup-jenkins-16-on-tomcat.html

สวัสดีค่ะ เบียร์ ทำงานอยู่บริษัท Nextzy สาขาเชียงใหม่ค่ะ เบียร์ทำงานในตำแหน่ง Automated tester ซึ่งเบียร์ได้มีโอกาสศึกษา Tools ตัวหนึ่งที่ใช้ในการ Build Automated ซึ่งเบียร์ก็ไปเจอเจ้า Jenkins มานี้แหละ ที่ช่วยให้การทำงานของเบียร์ให้ง่ายขึ้น

ซึ่งตอนศึกษาครั้งแรก ก็ลองลงบนเครื่องของตัวเอง ซึ่งการที่เราลง jenkins ในเครื่องของตัวเองมันจะเป็น http://localhost:8080/ ซึ่งมีข้อจำกัดอยู่บ้าง ยกตัวอย่างที่เคยเจอมา

  1. ไม่สามารถเห็นโปรเจคร่วมกับผู้อื่นได้
  2. ถ้าต้องการให้เพื่อนเห็นโปรเจคเดียวกับเรา ก็ต้อง เซตให้อยู่ในวง LAN เดียวกัน แต่เมื่อเปลี่ยน วงLAN ใหม่ ก็ต้อง เซต วงLAN ใหม่อีกครั้ง

ดูยุ่งยากจัง วันนี้เลยอยากมาแชร์ประสบการณ์ การติดตั้ง Jenkin ใน Ubuntu กันจ้า

Ubuntu มันเปรียบเสมือน เครื่อง server เครื่องหนึ่ง ที่มีเจ้า Jenkins อยู่ในนั้น มาค่ะพูดพร่ามมาเยอะละ มาลุยกันเลย

สิ่งแรกที่ต้องเตรียมนั้นก็คือ Server ที่ทำงานบน Ubuntu

  • ssh เข้า server เครื่องที่ต้องการจะลงก่อน โดยพิมพ์คำสั่ง ssh root@…IP….

ขั้นตอนที่ 1 ติดตั้ง Jenkins

โดยพิมพ์คำสั่ง

$ wget -q -O — https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -

เมื่อทำการเพิ่มคีย์ระบบจะตอบกลับว่า OK จากนั้นให้พิมคำสั่งต่อ

$ echo deb https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list

ทำการอัปเดตพื้นที่เก็บข้อมูลและติดตั้ง Jenkins

$ sudo apt-get update$ sudo apt-get install jenkins

ซึ่งระหว่างการติดตั้ง Jenkins เกิดปัญหาระหว่างการติดตั้งที่เบียร์เจอ นั้นก็คือ Java jdk ของ Ubuntu เป็น Version 9 ซึ่งเจ้า Jenkins ไม่ยอมให้ Start Jenkins ซึ่งจะขึ้น Error ดังรูป

Failed to start LSB: Start Jenkins at boot time.

ฉะนั้นแล้วต้องทำการ downgrade Java version from 9 to 8

JDK version 8:

$ sudo apt install openjdk-8-jre

เปิดไฟล์ Jenkins configuration :

$ sudo vi /etc/init.d/jenkins

เปลี่ยน Path Java ใหม่ :

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/lib/jvm/java-8-openjdk-amd64/bin/

หลังจากเปลี่ยน Java JDK เสร็จสิ้น ก็ทำการอัปเดตพื้นที่เก็บข้อมูลและติดตั้ง Jenkins ใหม่อีกครั้ง

$ sudo apt-get update
$ sudo apt-get install jenkins

ขั้นตอนที่ 2 เมื่อทำการติดตั้งเสร็จสิ้นให้เริ่ม Start Jenkins ด้วยคำสั่ง systemctl นี้
systemctl start jenkins

$ sudo systemctl start jenkins

เนื่องจาก systemctl ไม่แสดงผลลัพธ์เราจะใช้คำสั่งดังต่อไปนี้ เพื่อยืนยันว่า start jenkins สำเร็จ

$ sudo systemctl status jenkins

ถ้าทุกอย่างติดตั้งสำเร็จ จะแสดงผลลัพธ์ขึ้นว่า Active (สีเขียว)

ขั้นตอนที่ 3 Opening the Firewall

ตามค่าDefult Jenkins รันบน Port 8080 ดังนั้นเราจะเปิดพอร์ตที่ใช้ ufw :

$ sudo ufw allow 8080

และสามารถดู status ของ ufw ได้

$ sudo ufw status

Note : หาก firewall ขึ้น inactive ให้ทำการเปิด OpenSSH เพื่อขออนุญาตเปิดใช้งาน

$ sudo ufw allow OpenSSH
$ sudo ufw enable

ขั้นตอนที่ 4 Setting up Jenkins

เปิดเว็บบราวเซอร์โดยเข้าIP Address ตามด้วยพอร์ต 8080 ดังนี้
(IP Address):8080 จะแสดงหน้าเว็บดังต่อไปนี้

เราจะเห็นหน้าจอ “Unlock Jenkins” ซึ่งจะแสดงตำแหน่งของรหัสผ่าน โดยการ copy password ตาม path ดังที่แสดงบนหน้าเว็บ โดยพิมพ์คำสั่ง

$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword

จะแสดง password ออกมา ให้ทำการ copy แล้วนำมาใส่ในช่อง Administrator password ก็จะ Login ได้แล้ว

จากนั้นทำการติดตั้งปลั๊กอิน ให้เลือก Install suggested plugins

หน้าตาก็จะขึ้นแบบนี้ กำลังติดตั้งปลั๊กอินอยู่

หลังจากติดตั้งปลั๊กอินแล้วเราต้องสร้างรหัสผ่านผู้ดูแลระบบใหม่ พิมพ์ชื่อผู้ใช้ผู้ดูแลระบบรหัสผ่านอีเมลและคลิก “Save and Finish”

เมื่อทำการตั้งค่า Admin User เรียบร้อยแล้ว จะแสดงหน้าจอแบบนี้ถือว่า การติดตั้ง Jenkins บน Ubuntu เสร็จสิ้น

หลังจากนี้ เราก็สามารถใช้ IP นี้เปิดทำงานที่ไหนก็ได้ ไม่ต้องมาเป็นกังวล กับ เจ้า Jenkins อีก

ยังไงเบียร์ก็หวังว่าคงจะเป็นประโยชน์ สำหรับผู้ที่เข้ามาสนใจนะคะ ถ้ามีโอกาสบทความหน้าเบียร์จะมาแชร์ อีก ฝากติดตามด้วยนะคะ ^^

References

https://www.digitalocean.com/community/tutorials/how-to-install-jenkins-on-ubuntu-16-04

https://stackoverflow.com/questions/39621263/jenkins-fails-when-running-service-start-jenkins

--

--