ตั้งค่า AWX ให้ใช้ Playbook จาก Gitlab

หลังจากที่เราติดตั้ง AWX ไปแล้วในบทความก่อนหน้านี้. วันนี้เราจะมาตั้งค่าให้ AWX ของเรา เรียกใช้ Playbook จาก Gitlab กัน

ตั้งค่า AWX ให้ใช้ Playbook จาก Gitlab

What?

หลังจากที่เราติดตั้ง AWX ไปแล้วในบทความก่อนหน้านี้. วันนี้เราจะมาตั้งค่าให้ AWX ของเรา เรียกใช้ Playbook จาก Gitlab กัน

Why?

ทุกคนคงเคยได้ยินคำว่า Single Source of Truth กันมาก่อน หากยังก็ลองหาอ่าน Single Source of Truth philosophy. สรุปสั้นๆคือ แหล่งความจริงเพียงหนึ่งเดียว เชื่อถือได้ ตรวจสอบได้ โดยในบทความนี้เราจะมาปรับใช้กันคือ ก่อนหน้านี้เราใช้ playbook จากตัว awx local ซึ่งอาจจะมีใครมาแก้ตอนไหนก็ได้ (ถ้าเขาเข้าถึงได้) ซึ่งหากเป็นการใช้งานในองค์กรแล้ว ผมเชื่อว่าส่วนมากจะต้องใช้ Playbook นี้ร่วมกัน แล้วถ้าหาก playbook มันถูกแก้ไข หรือทำให้หายไป เราจะเช็คกันยังไง? ก็ไม่เชิงว่าไม่มีวิธีเช็ค แต่เราอย่าไปเหนื่อยขนาดนั้นแต่แรกดีกว่า การตั้งค่าให้ AWX มาใช้ Playbook จาก Gitlab นั้น ทำให้เราเมคชัวร์ได้ว่า Playbook นั้นคืออันที่เชื่อถือได้ และหากมีการแก้ไข จะสามารถตรวจสอบย้อนหลังได้นั่นเอง

Howto

ตอนนี้เราได้ติดตั้ง AWX และ Gitlab เรียบร้อยแล้ว ทีนี้เรามาเริ่มตั้งค่ากัน โดยก่อนอื่นให้เราย้าย Playbook ของเราจาก local ไปยัง repo ที่เราต้องการ ด้วยวิธีการทั่วไปคือ git clone, add, commit, push โดยเมื่อเสร็จหน้าตาที่ได้จะประมาณนี้

จากนั้นมาดูที่ AWX กัน โดยเราจะทำคือ

  1. Setup credential for Gitlab
  2. Setup project for Gitlab
  3. Setup Template for Gitlab

Setup credentials for Gitlab

ไปที่ Credentials > Add แล้วเลือก Credential Type: Source Control

โดยจะใช้ Private key ก็ได้นะครับ จากนั้นกดเซฟ

จากนั้นไปที่ Projects > Add

จากนั้นลองกด sync ซึ่งถ้าไม่มีอะไรผิดพลาด มันจะเขียว

จากนั้นก็ Templates > Add

เมื่อเรามาลอง run task. AWX ก็จะทำการ clone repo มานั่นแหละ แล้ว execute

Summary

หวังว่าจะมีประโยชน์กับเพื่อนๆ นะครับ เพราะการจัดการ code ใน git นั้นง่ายกว่าไป edit ใน local แน่นวล แถมยังสามารถใช้ version control ได้ด้วย

Read more

Restore MySQL DB ด้วย Binlog file

Restore MySQL DB ด้วย Binlog file

สวัสดีครับ วันนี้พลาดครับ เรื่องของเรื่องคือผมจะกลับมาเขียน blog เลยมาเช็ต blog ที่ผมรันไว้ ซึ่งผมรัน Ghost CMS blog บน docker แต่ดั๊นใช้ tag <:latest> ซึ่งใน compose file มีทั้ง ghost และ mysql ด้วยความที่รันไว้นานแล้ว และไม่ได้บันทึกอะไรไว้ มาถึงผมก็จัดแจง restart .... ไม่ขึ้นครับ

By Akachai Bunsorn
วันนี้เรามาลอง AWX: Ansible but web GUI

วันนี้เรามาลอง AWX: Ansible but web GUI

สวัสดีครับ วันนี้โจทย์คือทำยังไงให้ L1 reset Mattermost password ให้พนักงานได้ ซึ่งปกติแล้วจะต้องให้คนที่สามารถเข้าถึง Admin account ได้รีเซ็ตให้เท่านั้นซึ่ง user ลืมกันบ่อย (555555 😭) เลย come up with AWX ครับ

By Akachai Bunsorn