Halite คือตัวจัดการ Salt Master ผ่านหน้า Web interface โดยติดตั้งบน host salt master ทำให้สำหรับคนที่ไม่ถนัดการใช้ command สามารถ config salt master ได้ง่ายขึ้น แต่ Halite นั้นยังอยู่ในช่วง Develop ซึ่งเป็น version pre-alpha และ support salt ตั้งแต่ version 2014.1.0 ขึ้นไป ลักษณะการทำงานจะเป็นแบบใน Diagram ด้านล่างนี้

วิธีการดู version ของ salt master ใช้คำสั่ง
sudo salt-master --version

ที่เครื่อง salt master ให้ติดตั้ง halite โดยใช้ package manager PIP ให้ติดตั้ง PIP และ Dependency อื่นๆ ที่จำเป็นโดยใช้คำสั่ง
sudo apt-get update && sudo apt-get install python-pip
sudo pip install -U halite
sudo pip install CherryPy
sudo pip install paste
sudo apt-get install gcc
sudo apt-get install python-dev
sudo apt-get install libevent-dev
sudo pip install gevent
sudo pip install pyopenssl

ทำการเพิ่ม config permission สำหรับ login halite ที่ไฟล์ /etc/salt/master
sudo vi /etc/salt/master
ใส่ชื่อ user ที่สามารถ login หน้า Web UI User ที่ใส่นั้นต้องไม่ใช่ root และต้องมี user นี้อยู่บน linux โดยในตัวอย่างจะใช้ user admins เป็น user ที่มีบน linux และ pam คือรูปแบบการ auth บน linux
@runner คือ function ที่ halite ใช้เพื่อดึงข้อมูล status ของ minion หรือเครื่อง client นั้นเอง

external_auth:
  pam:
    admins:
      - .*
      - '@runner'

ทำการเพิ่ม config halite setting ที่ไฟล์เดิมคือ /etc/salt/master
sudo vi /etc/salt/master

halite:
  level: 'debug'
  server: 'cherrypy'
  host: '0.0.0.0'
  port: '8080'
  cors: False
  tls: True
  certpath: '/etc/pki/tls/certs/localhost.crt'
  keypath: '/etc/pki/tls/certs/localhost.key'
  pempath: '/etc/pki/tls/certs/localhost.pem'

setting halite นั้นต้องทำการสร้าง certificate สำหรับ run tls/ssl โดยจะใช้คำสั่งนี้
sudo salt-call tls.create_self_signed_cert tls

จากนั้นทำการ restart service salt-master
sudo service salt-master restart
ทดสอบเข้าหน้า Web UI โดยพิมพ์ URL:(ใส่ชื่อ host หรือ IP Address ของเครื่อง salt master) ในตัวอย่างเข้าเป็น URL: http://192.168.56.109:8080/app

แล้วทำการใส่ username และ password เพื่อ login เข้าสู่ระบบ จะเข้ามาที่หน้า console => ให้คลิ๊กที่ logo SALTSTACK เพื่อเข้าไปที่ preference


debug: ถ้าติ๊กจะเปิด Mode debug ใน Log ซึ่งจะอยู่ที่ /var/log/salt/master
verbose: ถ้าติ๊กจะเปิด Mode verbose ใน Log ซึ่งจะอยู่ที่ /var/log/salt/master
SaltApi: กำค่าต่างๆ ที่เกี่ยวกับ API ของ salt เช่น SaltApi.eauth เป็นวิธีการ Authen ซึ่งสามารถเป็น ldap ก็ได้ เป็นต้น
fecthGrains: คือตั้งว่าจะให้ดึงรายละเอียดต่างๆ ของเครื่อง minion เลยไหม ซึ่งถ้าติ๊กไว้ก็จะดึงมาให้เลย
preloadJobCache: จะเป็นการ cache job ที่ได้ run ไปแล้ว
เมื่อแก้ไขค่าต่างๆ เรียบร้อยแล้วก็คลิ๊กปุ่ม Update ต่อไปให้คลิ๊กที่แท็ป console => คลิ๊กขยายหน้าต่าง command ออกมา

Target Format: เลือกรูปแบบของการแสดงผล
Macro: เลือก Action ที่ต้องการจะใช้
Target: เลือกเครื่อง salt minion เป้าหมาย หากต้องการเลือกทุกเครื่องก็ใส่เป็น *
Function: เลือก Module ที่ต้องการใช้

ที่แท็ป Monitor จะเป็นแท็ปสำหรับ monitor เครื่อง salt minion

Command: คือคำสั่งที่ Assign ให้เครื่อง salt minion
Job: คืองานทั้งหมดที่สั่ง run ไป
Minion: คือ list ของเครื่อง salt minion ทั้งหมด
Event: จะเหมือนกับ Job แต่จะมี Time stamp บอกด้วย

ที่นี้จะมีตัวอย่างง่ายๆ เพื่อให้เข้าใจมากขึ้น โดยจะให้มี salt-master หรือ server 1 host และ salt minion หรือ client 2 host และจะใช้ web UI halite ทำการ monitor เครื่อง salt minion โดยการใช้ Action ping, version ไปที่เครื่อง salt minion, มีการใช้ Function hosts เพื่อ list file /etc/hosts ในเครื่อง minion และใช้ Fuction disk เพื่อดูขนาดของ disk ในเครื่อง salt minion
ให้ทำตามขึ้นตอนดังนี้เพื่อเพิ่ม Action และ Function ให้กับเครื่อง salt minion

  1. ไปที่แท็ป Command => ช่อง Target ใส่ค่า * => ตรง Macro เลือก Action เป็น ping => เลือก Action อีกครั้ง เป็น version
  2. ช่อง function ใส่เป็น disk.usage => คลิ๊กที่ปุ่ม Execute
  3. ช่อง function ใส่เป็น hosts.list_hosts => คลิ๊กที่ปุ่ม Execute อีกครั้ง
  4. เราจะเห็น command ทั้งหมดที่เพิ่มไปในแท็ป Monitor => command
    เราสามารถขยายแต่ล่ะ command ออกมาดูได้ว่าผลลัพท์ที่ run ไปนั้นผ่านไหม ถ้าสามารถ run ได้จะเป็นสีเขียน ถ้าไม่ได้จะเป็นสีแดงดังรูป
  5. ดูที่แท็ป Job ที่แท็ปนี้เราสามารถกดดูผลลัพธ์จากการ run Action หรือ Function ได้ดังรูป
  6. ดูที่แท็ป Minion ที่แท็ปนี้เราสามารถดู details ต่างๆ ของเครื่อง salt minion ได้ เช่น IP Address, biosversion เป็นต้น
  7. ดูที่แท็ป Event แท็ปนี้จะบอกรายละเอียดของแต่ล่ะ job ที่ run ไป, การ authen และอื่นๆ

ก็จบสำหรับบทความนี้แล้วครับ หากต้องการอ่านเพิ่มเติมให้ไปดูที่ References น่ะครับ

References
Halite ReadMe ใน GitGub
List Function ทั้งหมดใน Salt

Comments are closed.