Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

มาเริ่มใช้งาน Jenkins 2 กับ Docker กันดีกว่า

$
0
0

jenkins-docker

jenkins-docker หลังจากที่แนะนำ Jenkins 2 ไปแล้วใน blog::สวัสดี Jenkins 2 ซึ่งมี feature ใหม่ที่น่าสนใจเช่น
  • Pipeline-as-code
  • ปรับปรุงเรื่อง User Interface
  • ปรับปรุงเรื่องความปลอดภัย
  • ปรับปรุงเรื่องของระบบ plugin
  • ปรับปรุง website หลักให้ดูดี และ มีข้อมูลต่าง ๆ ครบเครื่อง
ดังนั้นแทนที่จะติดตั้งแบบเดิม ๆ เราลองทำการติดตั้งด้วย Docker กันดีกว่า ซึ่งมันทำให้การติดตั้ง configuration และการ update ง่ายขึ้นมาก ๆ แต่ก็ต้องแลกมาด้วยการเรียนรู้ ศึกษา และลงมือทำจริง ๆ มาเริ่มกันเลย
ปล. ตอนนี้ Jenkins 2.5 แล้วนะ ทีมพัฒนาทำการ update เป็นรายสัปดาห์กันเลย ขยันกันมาก ๆ

ขั้นตอนที่ 1 ใช้งาน Docker image ชื่อว่า jenkinsci/jenkins ใช้ tag latest

ดังนั้นทำการ pull หรือ download image ลงมาที่เครื่องของเราก่อน [code] $docker pull jenkinsci/jenkins:latest [/code]

ขั้นตอนที่ 2 ทำการสร้าง image และ container ที่ต้องการ

โดยต้องการให้มี 2 ตัวคือ
  • ตัวที่ 1 คือ Jenkins server หลัก หรือ Jenkins master
  • ตัวที่ 2 คือ เก็บข้อมูลต่าง ๆ ของ Jenkins เช่น job และ plugin เพื่อไม่ให้ไปผูกติดกับ Jenkins master เรียกว่า Jenkins Data
ดังนั้นเมื่อเราทำการลบ และ สร้าง container ของ Jenkins master ขึ้นมาใหม่ ก็ยังสามารถใช้งานค่า configuration จาก Jenkins data ได้ ถือว่าเป็นอีกหนึ่งแนวทางในการจัดการ เริ่มด้วยการสร้าง image กันก่อน [code] docker build -t jenkins-data -f data/Dockerfile . docker build -t jenkins2 -f master/Dockerfile . [/code] โดยที่ Dockerfile ของ Jenkins master และ Jenkins data อยู่ที่ Github จากนั้นทำการสร้าง container จาก image ที่สร้างไว้ก่อนหน้า โดย Jenkins master จะต้องทำการกำหนด volume ไปยัง Jenkins data ด้วย [code] $docker run --name=jenkins-data jenkins-data $docker run -p 8080:8080 -p 50000:50000 --name=jenkins-master --volumes-from=jenkins-data -d jenkins2 [/code] เมื่อสร้าง container เสร็จแล้ว ตรวจสอบด้วยคำสั่ง [code] $docker ps -a [/code] แสดงผลการทำงานดังนี้ [gist id="220bdc6ca4a1c8262a7f01179cf48bf6" file="list-container.txt"] โดยสามารถตรวจสอบการทำงานผ่าน browser ด้วย URL = http://localhost:8080 (ผมใช้ Docker for Mac นะ) จะแสดงดังรูป jenkins2-01

ขั้นตอนที่ 3 ทำการ configuration ค่าต่าง ๆ ของ Jenkins 2

เริ่มการดึงค่าของ Administrator password ก่อนเลย ด้วยคำสั่ง [code] $docker exec jenkins-master cat /var/jenkins_home/secrets/initialAdminPassword [/code] ทำการติดตั้ง Plugin และ สร้าง Job ที่ต้องการกันได้เลย ซึ่งผมเลือกการติดตั้ง plugin ตามที่ Jenkins 2 แนะนำเลย จากนั้นให้สร้าง user สำหรับจัดการ Jenkins จากนั้นก็มาเริ่มใช้งานกันเลย แสดงดังรูป jenkins2-03 จากนั้นสร้าง Item ซึ่งผมเลือกสร้าง Pipeline-as-code ขึ้นมา (เป็น plugin ใหม่ของ Jenkins 2) ชื่อว่า My-pipeline แสดงดังรูป jenkins2-04 เมื่อสร้างเสร็จแล้วก็ทดสอบ run สิ รออะไร แสดงดังรูป jenkins2-05 เมื่อทุกอย่างเรียบร้อย ให้ลอง stop, ลบ และสร้าง container ของ Jenkins-master จะพบว่าข้อมูลต่าง ๆ ทั้ง plugin และ job ยังคงอยู่ และสามารถใช้งานได้เหมือนเดิม ไม่ต้องมาสร้างใหม่ ซึ่งถ้าเข้ามาที่ Jenkins server จะต้องใส่ username และ password ด้วยนะ
แต่อย่าไปลบ container ชื่อว่า jenkins-data นะ !!

สุดท้ายแล้ว เราก็สามารถเริ่มสร้างระบบ Continuous Integration ด้วย Jenkins อย่างง่ายได้

ต่อไปจะอธิบายการสร้าง Pipeline-as-code เพื่อทำงานร่วมกับ Version Control เช่น git รวมทั้งการสร้าง Jenkins slave และการจัดการผ่าน Docker compose ยังไม่อะไรให้เราเรียนรู้อีกเยอะ !! Reference Websites https://dzone.com/articles/get-started-with-jenkins-20-with-docker http://engineering.riotgames.com/news/putting-jenkins-docker-container https://www.future-processing.pl/blog/building-and-deployment-multi-branch-web-application/ http://www.focusedsupport.com/blog/beyond-builds-combining-jenkins-and-docker-for-continuously-running-instances/ https://www.cloudbees.com/blog/get-ripped-jenkins-docker-industrial-strength-continuous-delivery http://making.meetup.com/post/122890386432/steps-towards-automated-testing-with-docker-and

Viewing all articles
Browse latest Browse all 1997

Trending Articles