ครั้งที่แล้วได้ติดตั้ง Salt กันไปเบื้องต้นแล้ว ครั้งนี้เรามาดูการสร้าง Salt Formula กันครับ อันดับแรกมาดูความหมายของคำต่างๆก่อนน่ะครับ State System เป็นส่วนประกอบของ Salt ที่ใช้ในการจัดการ Configuration ต่างๆ State System นั้นสร้างมาจาก SLS Formula ซึ่ง SLS Formula นั้นคือ file ที่อยู่ใน Salt file server หรือพูดง่ายๆ มันเป็น Formula ที่ถูกเขียนขึ้นและปกติจะเก็บไว้ที่ Path /srv/salt ของ Salt-Master ที่นี้เรามาทดลองสร้าง SLS Formula ดูอันดับแรกให้สร้าง file ที่ /srv/salt/vim.sls โดย SLS Formula นี้จะไปสั่งให้ Client ติดตั้ง Package vim
vi /srv/salt/vim.sls
เพิ่มข้อมูลลงในไฟล์ดังนี้
vim: pkg.installed
เสร็จแล้วลอง run sls ที่พึ่งสร้างเมื่อสักครู่นี้ โดยคำสั่งนี้จะทำให้เกิด State System และ run vim.sls นั้น
salt '*' state.sls vim
ผลลัพท์
salt.example.local: ---------- pkg_|-vim_|-vim_|-installed: ---------- __run_num__: 0 changes: ---------- vim: ---------- new: 2:7.4.052-1ubuntu3 old: comment: The following packages were installed/updated: vim. duration: 119084.416 name: vim result: True start_time: 11:16:34.534768
ต่อไปลองเพิ่ม SLS Formula ให้ไปจัดการ file ที่กำหนด
vi /srv/salt/vim.sls
Edit file เพิ่มดังนี้
vim: pkg.installed: [] /etc/vimrc: file.managed: - source: salt://vimrc - mode: 644 - user: root - group: root
แล้ว copy file vimrc ที่มีอยู่แล้วไปไว้ที่ Salt file server ซึ่งอยู่ที่ Path /srv/salt/
cp /etc/vim/vimrc /srv/salt/
แล้วลอง run vim.sls อีกครั้ง
salt '*' state.sls vim
ผลลัพท์
salt.example.local: ---------- ID: vim Function: pkg.installed Result: True Comment: Package vim is already installed. Started: 11:35:00.368715 Duration: 521.686 ms Changes: ---------- ID: /etc/vimrc Function: file.managed Result: True Comment: File /etc/vimrc updated Started: 11:35:00.890570 Duration: 118.333 ms Changes: ---------- diff: New file mode: 0644 Summary ------------ Succeeded: 2 (changed=1) Failed: 0 ------------ Total states run: 2
โดยคำสั่งที่ run vim.sls ไปนั้นจะหมายความว่า State 1 จะไปตรวจสอบ package vim มีอยู่ที่เครื่อง Client หรือไม่หากไม่มีก็จะทำการติดตั้งให้ และเมื่อติดตั้งเสร็จจะไปทำ State 2 จะไป Copy file vimrc ที่ Salt file server (path /srv/salt/vimrc) ไปที่ /etc/vimrc และเปลี่ยน Permission เป็น 0644 พร้อมทั้งเปลี่ยน User และ Group เป็น root ก็จบสำหรับการสร้าง SLS Formula เบื้องต้นน่ะครับ
อ่านเพิ่มเติมได้ที่
- http://docs.saltstack.com/en/latest/topics/tutorials/walkthrough.html
- https://www.digitalocean.com/community/tutorials/how-to-create-your-first-salt-formula