ก่อนที่จะอธิบายการทำ Git Fileserver Backend บน Salt Master จะอธิบายความหมายต่างๆ ที่ควรรู้ก่อนน่ะครับ Salt Master คือ Service ของ Salt ที่ติดตั้งอยู่บนเครื่อง Server เพื่อเป็นตัวควบคุม Client หรือเรียกว่า Salt Minion เช่น เราสามารถสั่งติดตั้ง Package bind9 และสั่ง start service bind9 ให้อัตโนมัติจากเครื่อง Salt Master ได้เลย โดยการสั่งงานผ่าน SLS Formula หรือ Script ซึ่งอยู่ใน File server ของเครื่อง Salt Master ซึ่งโดยปกติ salt file server path จะอยู่ที่ directory /srv/salt/ ของ host salt master ซึ่งเราสามารถเปลี่ยนให้ไปเรียกที่ git repository ได้ หมายความว่าเราสามารถเรียก Script SLS Formula จาก repository ที่อยู่ใน git server ได้ git server ถ้าอธิบายแบบง่ายๆ ก็คือ การทำ version control ให้กับ code ที่เราเขียนขึ้น สามารถอ่านเพิ่มเติมได้ที่ Link นี้ครับ ซึ่ง git server นี้จะเป็น git server ที่ติดตั้งขึ้นมาเองก็ได้ หรือจะใช้เป็นบริการฟรีอย่างเช่นเว็ปไซด์ github.com ซึ่งเป็นเว็บไซต์ที่ให้บริการเสมือน git server เป็นบริการฟรีแบบมีเงื่อนไขคือ คุณสามารถใช้งานได้ฟรี แต่โปรเจ็กที่สร้างขึ้นจะต้องเป็นแบบ public เท่านั้น คือ คนอื่นสามารถเข้าไปดูโค้ด ดูดโค้ด ท่านได้ ถ้าไม่อยากให้ชาวบ้านเห็นโปรเจ็กของท่าน ก็ต้องเสียตังใช้บริการ เพื่อสร้างโปรเจ็กแบบ private หรือ git server ที่ให้บริการฟรีอีกเว็ปไซด์ก็คือ bitbucket.com

Diagram Git Fileserver Backend Salt Master

(ในตัวอย่างจะใช้ git server ของเว็ปไซด์ GitHup.com และจะติดตั้ง salt-master และ salt-minion บน ubuntu server 14.04 อย่างล่ะ 1 host โดยมีรายละเอียดดังนี้)
192.168.56.109 saltmaster.example.local saltmaster
192.168.56.110 saltminion1.example.local saltminion1

ก่อนจะทำ git file server ต้องติดตั้ง dependency ก่อนดังนี้
sudo add-apt-repository ppa:dennis/python
sudo apt-get install python-pygit2 python-dulwich

แก้ไข file config master
sudo vi /etc/salt/master
เพิ่ม config นี้เพื่อให้ file server backend ใช้ git repository

fileserver_backend:
  - git

และกำหนด URL ของ git repository (ในตัวอย่างจะใช้ URL: https://github.com/kruineverdie/salt.git)

gitfs_remotes:
  - https://github.com/kruineverdie/salt.git

list file ใน file server ใช้คำสั่ง
sudo salt '*' cp.list_master

ทดสอบใช้งาน SLS Formula โดยไปเรียกจาก git repository ใช้คำสั่ง
sudo salt '*' state.sls vim

จากผลลัพธ์จะเห็นว่าสามารถเรียกใช้งาน SLS Formula ได้จาก git repository ซึ่งในตัวอย่างจะมี file vim.sls อยู่ใน git repository ซึ่ง config ไว้ดังนี้

vim:
  pkg.installed

มีความหมายว่าให้ติดตั้ง package vim
ที่นี้ไปดูที่ host saltminion1 ว่ามีการติดตั้ง vim แล้วหรือยัง จะใช้คำสั่ง
dpkg -s vim

จากผลลัพธ์จะเห็นว่ามีการติดตั้ง package vim เรียบร้อยแล้ว

References
http://docs.saltstack.com/en/latest/topics/tutorials/gitfs.html

Comments are closed.