Skip to content

Instantly share code, notes, and snippets.

@maprangzth
Last active April 11, 2019 08:02
Show Gist options
  • Save maprangzth/ea25b5999ee97f50277bf4fa0b63a049 to your computer and use it in GitHub Desktop.
Save maprangzth/ea25b5999ee97f50277bf4fa0b63a049 to your computer and use it in GitHub Desktop.

Ansible พื้นฐานที่ (ตัวเอง) ควรรู้ Ep.03 - Modules

Ansible Logo

ใน Ep. ก่อนหน้านั้นเราได้รู้จักกับ Ansible และ Inventory กันไปเป็นที่เรียบร้อยแล้ว แต่แค่นั้นเรายังไม่สามารถใช้งาน Ansible ได้นะครัชชช สิ่งที่ Ansible ต้องการอีกตัวนึง คือ Modules

Modules คืออะไร?

Module คือ ชุดคำสั่งที่ (สามารถ Execute ได้) เขียนขึ้นมาเพื่อให้ทำงานตามที่เราต้องการ ซึ่ง Ansible นั้นมี Module ที่ถูกเขียนไว้แล้วเยอะแยะมากมาย เราสามารถเรียกใช้ได้เลย (รายชื่อ modules และวิธีใช้งานดูได้จาก ที่นี่) หรือถ้าใครอยากเขียนขึ้นมาใช้เองในองค์กรก็สามารถทำได้เหมือนกัน โดยมีข้อแม้ว่าตัวภาษาที่ใช้เขียนต้องรีเทิร์น Output เป็น JSON ได้ แต่ส่วนมากแล้วเขาใช้ Python ถ้าสนใจตามไปอ่านเพิ่มเติม ที่นี่

การทำงานของ Modules

ถ้าใครเข้าไปอ่านใน Doc. เขาก็จะบอกว่ามันทำงานแบบ "idempotent" อธิบายให้เข้าใจง่ายๆ คือ Module เนี่ยจะทำงานเฉพาะสิ่งที่อยู่ไม่ได้อยู่ใน desired state เท่านั้น (ไม่อยู่ใน state ที่ต้องการ) และต่อให้เราสั่ง Ansible สักกี่รอบมันก็จะได้ผลลัพธ์เหมือนเดิมทุกรอบ เช่น สั่งให้ Ansible ทำการติดตั้ง package nginx ถ้าหาก nginx ถูกติดตั้งอยู่แล้วมันก็จะไม่ทำงานให้ แต่ถ้ายังไม่ถูกติดตั้ง มันก็จะทำการติดตั้งให้ และใครที่คิดจะเขียน Module ขึ้นมาใช้งานก็ควรจะยึดหลักนี้ด้วยน๊ะจ๊ะ จะได้ไม่เป็นภาระของคนที่ใช้งาน

Modules พื้นฐานที่ใช้งานบ่อยๆ

การทำงานของแต่ละ Modules นั้น Official Document เขาเขียนอธิบายไว้ชัดเจน แจ่มแจ้งอยู่แล้วฉะนั้นตามไปเสพกันได้เลย ^^

สรุป

Ansible นั้นมี Modules ให้ใช้งานเยอะมาก (หลักร้อย) ถือว่าพกพาความสะดวกสบายมาให้ผู้ใช้งานอย่างมาก แต่สำหรับมือใหม่หัดขับที่หลงเข้าในดง Ansible ก็มีใช้อยู่ไม่กี่อันหรอก ตาม List ด้านบนนั่นแหละครับ (อาจจะดูน้อยแต่ถ้าลอง Search หรือหาอ่าน Tutorial ที่อื่นๆ ก็ใช้เหมือนผมนี่แหละ 555) สุดท้ายฝากทุกท่านที่หลงเข้ามาอ่านไปศึกษาวิธีใช้งานของแต่ละ Module เพิ่มด้วยนะครับ จะให้ดีก็ศึกษา Modules อื่นๆที่ไม่ได้กล่าวมาด้วยเด้อ ลองใช้บ่อยๆ รันบ่อยๆ เดี๋ยวคล่องเอง เชื่อหมอ... หมอเรียนมา!!!

@patzidane
Copy link

ขอโมดูล shell ฉบับภาษาไทยได้มั้ย อ่านใน doc ไม่ค่อยเข้าใจ มันสำคัญยังไง ใช้ทำไม สมมุติ ในการติดตั้ง ruby เขาใช้ทำไมหรอ
เห็นคำถามเราแล้วก็พอจะเดาออกใช้มั้ยอ่ะ ว่ามือใหม่ อิอิ แล้วเราต้องไปอ่านเรื่อง shell และ การติดต้ง ruby on ubuntu เพิ่มใช่มั้ย

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment