โลโก้ Jenkins
อันดับ 29 ใน Top 100 DevOps และ CI/CDMIT (โอเพนซอร์ส)

Jenkins คืออะไร และวิธีติดตั้งบน Cloud Server

Jenkins คือเซิร์ฟเวอร์อัตโนมัติที่ใช้ทำ CI/CD มายาวนาน จุดเด่นคือระบบปลั๊กอินกว่าหนึ่งพันตัวที่เชื่อมกับเครื่องมือแทบทุกชนิดในสายงานพัฒนา

หมวดหมู่
DevOps และ CI/CD
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 4 GB
ไลเซนส์
MIT (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

Jenkins คืออะไร

Jenkins ทำหน้าที่รันงานอัตโนมัติเมื่อมีเหตุการณ์เกิดขึ้น เช่น เมื่อมีการ Push โค้ดใหม่ ให้ดึงโค้ดมาบิลด์ รันชุดทดสอบ และนำขึ้นเซิร์ฟเวอร์ตามขั้นตอนที่เขียนไว้ในไฟล์ Jenkinsfile

ความได้เปรียบของ Jenkins คือความยืดหยุ่นและปลั๊กอินจำนวนมหาศาล ซึ่งทำให้ต่อกับระบบเดิมขององค์กรได้แทบทุกอย่าง ตั้งแต่เซิร์ฟเวอร์เก่าที่ใช้ FTP ไปจนถึง Kubernetes

ข้อแลกเปลี่ยนคือหน้าตาที่ดูเก่ากว่าเครื่องมือรุ่นใหม่ และต้องดูแลปลั๊กอินให้อัปเดตอยู่เสมอ เพราะช่องโหว่ส่วนใหญ่ของ Jenkins มาจากปลั๊กอินที่ไม่ได้อัปเดต

แผนผังการวางระบบ Jenkins บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 8080, 443, 50000 ตัว Jenkins และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 2 vCPU แรม 4 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
Jenkins ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ Jenkins

Pipeline เป็นโค้ด

เขียนขั้นตอนทั้งหมดไว้ในไฟล์ Jenkinsfile ที่เก็บคู่กับซอร์สโค้ด ตรวจสอบย้อนหลังได้

ปลั๊กอินกว่าหนึ่งพันตัว

เชื่อมกับ Git, Docker, Kubernetes, ระบบแจ้งเตือน และเครื่องมือทดสอบได้แทบทุกชนิด

กระจายงานไปหลาย Agent

รันงานบิลด์บนเครื่องอื่นเพื่อไม่ให้เครื่องหลักรับภาระทั้งหมด

รันงานตามตารางได้

ใช้เป็นตัวจัดการงานอัตโนมัติทั่วไป ไม่จำกัดแค่งานบิลด์

ใช้ Jenkins ทำอะไรได้บ้าง

  • บิลด์และทดสอบโค้ดอัตโนมัติทุกครั้งที่มีการเปลี่ยนแปลง
  • นำแอปขึ้นเซิร์ฟเวอร์ตามขั้นตอนที่กำหนดโดยไม่ต้องทำมือ
  • องค์กรที่มีระบบเดิมหลากหลายและต้องการตัวกลางที่เชื่อมได้ทุกอย่าง
  • งานประจำที่ต้องรันตามตาราง เช่น สร้างรายงานหรือซิงก์ข้อมูล

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ Jenkins 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 60 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 16 GB ขึ้นไป ดิสก์ NVMe 300 GB ขึ้นไป โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นทีมเล็กที่มี Pipeline ไม่กี่ตัว2 vCPU4 GBNVMe 60 GB
แนะนำใช้งานจริงพร้อม Agent แยกหนึ่งถึงสองเครื่อง4 vCPU8 GBNVMe 150 GB
ระบบใหญ่หลายทีมที่รัน Pipeline พร้อมกันจำนวนมาก8 vCPU ขึ้นไป16 GB ขึ้นไปNVMe 300 GB ขึ้นไป

ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ

วิธีติดตั้ง Jenkins บน Cloud Server ของ THAI DATA CLOUD

ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server

สิ่งที่ต้องเตรียม

  • Java 17 หรือ 21 ตามที่ Jenkins รุ่นนั้นรองรับ
  • Ubuntu Server 24.04 LTS หรือ Rocky Linux 9
  • พื้นที่ดิสก์เผื่อสำหรับ Workspace และ Artifact ที่สะสมเร็วมาก

ทดสอบบน Ubuntu Server 24.04 LTS

  1. 1

    ติดตั้ง Java

    sudo apt update
    sudo apt -y install fontconfig openjdk-21-jre
  2. 2

    เพิ่มที่เก็บแพ็กเกจของ Jenkins

    sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
      https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
    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
  3. 3

    ติดตั้งและเปิดบริการ

    sudo apt update
    sudo apt -y install jenkins
    sudo systemctl enable --now jenkins
  4. 4

    ปลดล็อกครั้งแรก

    เปิดหน้าเว็บที่พอร์ต 8080 แล้วกรอกรหัสจากไฟล์นี้ จากนั้นเลือกติดตั้งปลั๊กอินที่แนะนำ

    sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  5. 5

    วาง Reverse Proxy และ SSL

    ตั้ง Nginx รับโดเมนที่พอร์ต 443 แล้วส่งต่อไปที่ 127.0.0.1:8080 เพื่อไม่ต้องเปิดพอร์ต 8080 สู่อินเทอร์เน็ต

    location / {
      proxy_pass http://127.0.0.1:8080;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  6. 6

    ตั้งงานล้าง Workspace เก่า

    กำหนดใน Pipeline ให้เก็บผลบิลด์ย้อนหลังเท่าที่จำเป็น เพราะดิสก์เต็มคือสาเหตุที่ Jenkins ล่มบ่อยที่สุด

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
8080TCPหน้าเว็บ Jenkins (ให้เข้าผ่าน Reverse Proxy แทนการเปิดตรง)
443TCPHTTPS ผ่าน Reverse Proxy
50000TCPการเชื่อมต่อของ Agent (เปิดเฉพาะวงภายใน)

สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ

  • อัปเดต Jenkins และปลั๊กอินสม่ำเสมอ เพราะช่องโหว่ส่วนใหญ่มาจากปลั๊กอินเก่า
  • ปิดการสมัครสมาชิกเองและเชื่อมกับระบบยืนยันตัวตนขององค์กร
  • ใช้ระบบสิทธิ์แบบ Matrix เพื่อแยกว่าใครแก้ Pipeline ใดได้
  • เก็บรหัสผ่านและคีย์ในระบบ Credentials ของ Jenkins ไม่ฝังในสคริปต์
  • ไม่รันงานบิลด์บนเครื่องหลัก ให้ใช้ Agent แยกเพื่อลดความเสี่ยงและกระจายภาระ

ทำไมควรรัน Jenkins บน Cloud Server ของ THAI DATA CLOUD

Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง

สร้างเครื่อง Agent เพิ่มบน Cloud Server ในช่วงที่งานบิลด์เยอะ แล้วลบทิ้งเมื่อไม่ใช้ ช่วยคุมค่าใช้จ่าย

ค่าใช้จ่ายคงที่ต่อเดือน ต่างจากบริการ CI บนคลาวด์ที่คิดตามนาทีและควบคุมยากเมื่อทีมโต

ซอร์สโค้ดและ Artifact อยู่ในไทย เหมาะกับองค์กรที่มีข้อกำหนดเรื่องข้อมูล

คำถามที่พบบ่อยเกี่ยวกับ Jenkins

Jenkins ยังคุ้มที่จะใช้ไหมเมื่อเทียบกับ GitLab CI

คุ้มเมื่อองค์กรมีระบบเดิมหลากหลายที่ต้องเชื่อม หรือมี Pipeline ที่เขียนไว้แล้วจำนวนมาก แต่ถ้าเริ่มใหม่และใช้ GitLab เป็นที่เก็บโค้ดอยู่แล้ว GitLab CI จะตั้งค่าง่ายกว่าและดูแลน้อยกว่า

ทำไม Jenkins ช้าลงเรื่อย ๆ

สาเหตุที่พบบ่อยคือประวัติการบิลด์และ Artifact สะสมจนดิสก์เกือบเต็ม และการรันงานทั้งหมดบนเครื่องหลัก แก้โดยตั้งนโยบายเก็บผลบิลด์ย้อนหลังและย้ายงานไปรันบน Agent

ปลอดภัยพอที่จะเปิดให้เข้าจากภายนอกไหม

ควรเปิดผ่าน Reverse Proxy พร้อม HTTPS และจำกัดไอพีหรือบังคับเข้าผ่าน VPN เพราะ Jenkins มีสิทธิ์ Deploy ไปยังระบบจริง การถูกยึดบัญชีจึงกระทบทั้งระบบ

ให้เราติดตั้ง Jenkins ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด