DEV Community

terngr
terngr

Posted on

Automate Deployment ให้กับ NGINX OSS ผ่าน NGINX Instance Manager

Pain point หนึ่งของการใช้งาน NGINX OSS คือไม่สามารถทำ Automation ได้
เช่น ถ้าเราต้องการเพิ่ม LB pool member จะต้องเข้าไปที่ NGINX Node และ Edit configuration แบบ manual

ถ้าต้องการ Automate, สิ่งที่พอจะทำได้คือการส่งไฟล์ Configuration ไปยังเครื่องโดยตรง เช่นการใช้ scp จากนั้นทำการ reload เพื่อ apply new configuration

NGINX ออก tools ตัวใหม่ชื่อ NGINX Instance Manager (https://www.nginx.com/blog/introducing-nginx-instance-manager) โดยสามารถแก้ไข Configuration files ผ่าน GUI ได้ รวมถึง Deploy ผ่าน API ก็ทำได้

1.ติดตั้ง NGINX Instance Manager https://my.f5.com
หน้าจอหลังติดตั้ง
Alt Text

2.เช็ค Instance หรือ NGINX ที่เรา Manage
จะเห็น NGINX Instance 2 nodes
Alt Text

3.ใช้ instance_id เพื่อเรียกดู Configuration จาก node แรก, ไฟล์ถูก Encode ไว้ด้วย base64
Alt Text
ทดสอบ Decode ด้วยคำสั่ง base64 -d จะได้ไฟล์ nginx.conf ที่เราคุ้นเคย
Alt Text

4.ทดสอบเพิ่ม LB ตัวใหม่ โดยให้ Listen ที่พอร์ต 8080 และให้ Proxy ไปที่หน้า Welcome to NGINX, จากนั้นแปลง configuration ให้อยู่ในรูปแบบ base64
Alt Text

5.ทำการยิง Configuration จากข้อ 4 โดยการ POST ไปที่ Instance Manager
เมื่อได้รับ Status code: 200 OK, และ err เป็น String ว่าง แสดงว่าทำการเพิ่ม Configuration สำเร็จ
Alt Text

6.ทำการ Analyze Configuration พบว่าไม่มี Error, error_count = 0
Alt Text

7.Publish Configuration ไปที่ NGINX Instance(NGINX Node)พร้อม apply
Alt Text

8.เรียกดู Configuration ด้วยวิธีการเดียวกับข้อ 3, พบว่า Configuration ใหม่ถูกเพิ่มเข้าไปแล้ว
Alt Text

9.ทดสอบใช้งาน พบว่าสามารถใช้ :8080 ได้แล้วครับ
Alt Text

สามารถทำ Automate deployment กับ NGINX OSS พร้อมๆ กัน โดยผ่านทาง NGINX Instance Manager API ได้ครับ

ทั้งหมดข้างต้น ถ้าเราไม่ทำผ่าน API สามารถทำผ่าน GUI ก็ได้เช่นกัน

Top comments (0)