saltstack

สร้าง state ไฟล์สำหรับจัดการ state ของระบบด้วย saltstack

top.sls

top.sls จะอยู่ในโฟล์เดอร์ที่ระบุไว้ใน file_roots ของ ไฟล์: config/master

file_roots:
  base:
    - /path/to/folder

ตามคอนฟิกด้านบนจะต้องสร้างไฟล์ /path/to/folder/top.sls

ส่วนประกอบ

  • Enviroment คือชื่อโฟลเดอร์ที่เก็บ state file ทั้งหลายเช่น base
  • Target คือเครื่องหรือกลุ่มของเครื่อง
  • ไฟล์ State คือรายการของ ไฟล์ state ที่จะถูกใช้กับเครื่องหรือกลุ่มของเครื่องใน Target
# ไฟล์ top.sls
base:           # Enviroment
  'web*':       # Target
    - nginx     # ไฟล์ state
    - mongodb   # ไฟล์ state
...

ให้ใช้ state ชื่อ nginx จาก nginx.sls และ mongodb จาก mongodb.sls กับเครื่องที่มี minion_id ขึ้นตั้นด้วย web ทั้งหมดเช่น web1, web2, web… สำหรับ enviroment ชื่อ base

file.sls

คือ SaLt State ไฟล์สำหรับเก็บ state ของระบบที่ควรจะเป็นเช่น state: file.managed

ไฟล์: /path/to/folder/nginx.sls

# YAML format
/etc/nginx/sites-available/my-site-config:
  file.managed:
    - source: salt://local/my-site-config

ในเครื่องที่ถูกเลือกจะต้องมีไฟล์ my-site-config ในโฟลเดอร์ /etc/nginx/sites-available/ โดย saltstack จะสำเนาไฟล์ไปยังเครื่องจากไฟล์ต้นทางตามที่ได้ระบุ หากไฟล์ต้นทางมีการเปลี่ยนแปลงเมื่อเรียกใช้ salt-ssh อีกครั้งจะอัพเดทไฟล์ให้เป็นเวอร์ชั่นล่าสุด