in Technology

เริ่มต้นทำ CI/CD – วิธีติดตั้ง Jenkins บน Ubuntu (1)

ตอนแรกว่าจะเขียนรวดเดียวจบถึงวิธีทำ CI/CD (Continuous Integration and Continuous Deployment) ด้วย Jenkins และ Bitbucket แต่พอเขียน Jenkins จบ รู้สึกว่ายาวไปหน่อย เลยขอตัดเอาเป็น Jenkins ก่อนก็แล้วกันนะ

Jenkins เป็น Automation Tools ที่เอาไว้ทำอะไรต่างๆแบบอัตโนมัติ ซึ่งในที่นี้เราเอามันไปใช้ทำ CI/CD เพื่อช่วยชีวิตนักพัฒนาอย่างเราให้สบายขึ้น อบย่างเช่น นักพัฒนาเพียงแค่เขียนโค้ด นำขึ้น Git แล้วให้ Jenkins ทำการทดสอบจากที่เราตั้งค่าไว้ ไม่ว่าจะ Robot Framework หรือ Test Unit ก็ตาม เมื่อผ่านเรียบร้อย ก็นำกลับไป Merge Code เข้า Git หรือจะ Deploy ต่อไปยัง Server ก็ว่ากันไป (ซึ่งผมจะเขียนบล็อกสอนทำตามนี้แหละ)

เนื่องด้วยผมใช้ Linux Ubuntu นะครับ ใครใช้ Linux/Windows อื่นๆ ก็ลองปรับๆเทียบเคียงดูอีกที

สิ่งที่ต้องมี

Server ที่ใช้ Ubuntu มี Ram ขั้นต่ำ 1GB จากนั้นให้สร้าง user ที่สามารถใช้งาน sudo ได้และใช้ File Key Authentication ในการเข้าสู่ระบบ (วิธีการสร้าง user + file key authentication + disable root user + disable password authentication)

ติดตั้ง Jenkins

เพิ่ม repository key ใน server

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

พิมพ์ไปแล้วจะแสดงคำว่า OK เป็นใช้ได้ จากนั้น กำหนด Debian package repo address

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

ทำการ update package สักหน่อย

$ sudo apt-get update

สุดท้ายก็พิมพ์คำสั่งติดตั้ง Jenkins

$ sudo apt-get install jenkins

จากนั้นให้ทำการ เปิดใช้ Jenkins

$ sudo service jenkins start

แล้วลองเช็คดูว่า Jenkins ทำงานจริงหรือไม่

$ sudo service jenkins status

ถ้า Jenkins ทำงานอยู่ ผลลัพธ์ที่ได้จะแสดงประมาณนี้

Jenkins Automation Server is running with the pid 12445 (เลขข้างหลังอะไรก็ว่าไป อาจไม่เหมือนกัน)

เปลี่ยนเลข Port Jenkins สักหน่อย

(ถ้าใครไม่ทำตรงนี้ ก็ข้ามไปได้ครับ ใช้ Port 8080 ดังเดิม)

ปกติ Jenkins จะใช้ Port 8080 ซึ่งผมคิดว่าเกร่อไปนิด เลยอยากเปลี่ยนเป็นเลขอื่นๆแทน โดยทำดังนี้

แก้ไข file ชื่อ /etc/default/jenkins

$ sudo vi /etc/default/jenkins

แก้เลข port บนหาบรรทัดที่เขียนว่า HTTP_PORT

HTTP_PORT=8083

จากนั้น save แล้วออกมา restart Jenkins อีกรอบ

$ sudo service jenkins restart

ตั้งค่าใช้งาน Jenkins

เมื่อติดตั้งและเปลี่ยน port เรียบร้อย คราวนี้มาตั้งค่ากัน โดยเข้าไปที่ URL เว็บของเราหรือ IP แล้วตามด้วยเลข Port ที่เรากำหนดเมื่อสักครู่

http://ip_address_or_domain_name:8083

การเข้าใช้งานครั้งแรก จะขึ้นหน้าตาแบบนี้ครับ

ซึ่งมันให้เราเอารหัสเปิดใช้งานครั้งแรกมากรอก โดยพิมพ์คำสั่งดูข้อมูลจาก /var/lib/jenkins/secrets/initialAdminPassword

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

เราจะได้ตัวอักษรผสมตัวเลข 32 หลัก ซึ่งอันนี้แหละ เป็นรหัสที่ใช้กรอก

เมื่อกดไปขั้นต่อไป ให้เลือก Install suggested plugins เป็นค่าเริ่มต้นไปก่อน

แล้วมันจะทำการติดตั้งอะไรก็ว่าไป จนไปถึงหน้ากรอกข้อมูล Admin User ก็ตั้งได้จตามสะดวกที่ต้องการ เป็นอันเสร็จพิธี และเมื่อกดปุ่ม Start using Jenkins จะเจอหน้าแรกประมาณนี้ (Test Project กับ Test CI CD (Bitbucket) ไม่ต้องไปสนใจมันนะฮะ พอดีผมลืมแคปเจอร์หน้าตอนที่ยังไม่มี Project ขึ้น แหะๆ)

 

เว็บอ้างอิง

ซี่รี่ “เริ่มต้นทำ CI/CD”