Screen Shot 2558-01-10 at 11.00.50 PM
ในการ deploy/publish ระบบงานด้วย Jenkins นั้นมีหลากหลายวิธีการ
หนึ่งในนั้นก็คือ ผ่าน SSH protocol
ซึ่งใน Jenkins นั้นมี plug-in ให้ใช้งานก็คือ Publish over SSH

ความต้องการ

สิ่งที่ต้องการก็คือ ต้องการ deploy code ของระบบงานที่พัฒนาด้วยภาษา PHP
จากระบบ Continuous Integration ซึ่งใช้งาน Jenkins
ไปยัง Server ที่เปิด SSH protocol ให้ใช้งาน
จะต้องทำอย่างไรดีล่ะ ?

วิธีการที่คิดได้ก็คือ

  • ใช้งานผ่าน FTP
  • ใช้งานผ่าน rsync
  • ใช้งานผ่าน SSH

จากทั้งสามแนวทางนั้น พบว่าทาง Server เปิด SSH protocol ใ้ห้ใช้งานอยู่แล้ว
จึงคิดว่า ถ้าสามารถทำการ deploy/public code ไปยัง Server ผ่าน SSH น่าจะดี
ดังนั้น จึงลองค้นหาดูว่ามีแนวทางหรือไม่

จากการค้นหาจึงไปพบว่ามี plug-in ชื่อว่า Publish Over
โดยหนึ่งในนั้นก็คือ Publish Over SSH จึงลองนำมาใช้งานดูว่าจะเป็นอย่างไร

ขั้นตอนการใช้งาน

1. ทำการติดตั้ง plugin ในส่วนของ Manage plug-in ดังรูป
Screen Shot 2558-01-10 at 10.53.20 PM

2. ทำการ configuration SSH Server ของ plug-in ที่ Manage Jenkins -> Global Config ดังนี้
ส่วนที่สำคัญๆ ประกอบไปด้วย

  • Key คือ RSA private key ซึ่งนำมาจาก ~/.ssh/ นะครับ
  • Hostname คือ IP หรือชื่อเครื่อง SSH server
  • Remote directory คือ path บน SSH Server

Screen Shot 2558-01-10 at 11.04.16 PM

 

3. การใช้งานให้เพิ่มในส่วน Build ของ Job/Item ใน Jenkins ดังนี้

Screen Shot 2558-01-10 at 11.08.48 PM

4. ทำการ configuration ดังนี้

  • Transfer set source files คือ pattern ของไฟล์ที่จะทำการ deploy ไปยัง SSH server
  • Remote directory คือ folder หลักที่ SSH Server

Screen Shot 2558-01-10 at 11.11.29 PM

แต่ถ้าเราไม่ต้องการไฟล์ หรือ folder บางตัวแล้ว
สามารถทำการ exclude ได้ด้วย
โดยอยู่ในส่วนของ Advanced.. ดังนี้

  • จากตัวอย่างทำการ Excluded file และ folder คือ folder vendor, file composer.* เป็นต้น

Screen Shot 2558-01-10 at 11.14.24 PM

และนี่คืออีกหนึ่ง plug-in ของ Jenkins ที่น่าสนใจครับ
ถ้าสนใจลองทำการติดตั้ง และใช้งานดูเล่นๆ ครับ

Tags: