Pattern หนึ่งในการทำ Puppet Deployment

ช่วงนี้มีโอกาสได้ลองเริ่มใช้ Puppet กับงานที่บริษัทแบบจริงๆ จังๆ แล้วก็กำลังคิดถึงวิธีที่จะเอาสคริป Puppet ของเราไปวางไว้ที่ตัว Master สเต็ปที่คิดว่าจะทำคือ

  1. เขียนโค้ด รันเทสบนเครื่องให้เสร็จ
  2. Push เข้า Github
  3. ให้ CI รันเทสให้อีกที
  4. เอาสคริปสำหรับการ Deploy เข้า Puppet Master ไปวางไว้ใน CI แล้วให้ CI เป็นคนรัน

ไม่ค่อยแน่ใจว่าชาวบ้านทำกันแบบนี้หรือเปล่า เลยลองกูเกิ้ลเรื่อยๆ อยู่หลายวันก็ไม่ค่อยเจอคนบอกรายละเอียดสักเท่าไหร่ ส่วนใหญ่จะเจอแต่คำว่า Deploy แต่ไม่ค่อยเจอว่าเค้าทำกันอย่างไร วันนี้ว่างจัดเลยนั่งเคลียร์อีเมลที่ดองไว้ แล้วก็เจอเมลของ Sysadmin Casts ข้างในเนื้อหามีหัวเรื่องว่า Git to Puppet Deployment workflow ลองเข้าไปดูแล้วก็มั่นใจว่าที่เราคิดไว้ก็ถือว่าเป็น Pattern หนึ่งเหมือนกัน 🙂 ลองดูรูปข้างล่างนี้

Episode #33 - Git to Puppet Deployment Workflow
Git to Puppet Deployment Workflow (Credit: https://sysadmincasts.com/)

Pattern ที่เค้าทำ (เจ้าตัวก็บอกว่าไม่รู้ผิดหรือเปล่าเหมือนกัน) ก็คล้ายๆ กับที่คิดไว้ แต่ของเค้าจะใช้ Hook แทนเป็นตัวคอยรันเทสแล้วก็เอาโค้ดเข้า Puppet Master

ลองเล่น Puppet Master กับ Puppet Agent บนเครื่องเราเอง

หมายเหตุ ทดสอบกับ Ubuntu เวอร์ชั่น 14.04 Vagrant เวอร์ชั่น 1.5.3 และ Puppet เวอร์ชั่น 3.7.3

อย่างน้อยเราต้องมีเครื่องสัก 2 เครื่อง เครื่องหนึ่งติดตั้ง Puppet Master และอีกเครื่องหนึ่งติดตั้ง Puppet Agent วิธีที่ง่ายที่สุด และถูกที่สุดคือสร้าง Virtual Machine (VM) ขึ้นมาใช้งาน ถ้า Geek หน่อยก็ใช้ Vagrant สร้าง Multi-Machine สร้าง VM บล็อกนี้จะขอแนะนำให้ใช้ Vagrant นะครับ ชีวิตสบายขึ้นเยอะ

Continue reading "ลองเล่น Puppet Master กับ Puppet Agent บนเครื่องเราเอง"