linux - 運維軟件saltstack

運維軟件saltstack

早期運維人員會根據本身的生產環境來寫特定腳本完成大量重複性工做,這些腳本複雜且難以維護。系統管理員面臨的問題主要是一、系統配置管理,二、遠程執行命令,所以誕生了不少開源軟件,系統維護方面有fabric、puppet、chef、ansible、saltstack等,這些軟件擅長維護系統狀態或方便的對大量主機進行批量的命令執行。python

  salt靈活性強大,能夠進行大規模部署,也能進行小規模的系統部署。salt的設計架構適用於任意數量的服務器,從少許本地網絡系統到跨越數個數據中心,拓撲架構都是c/s模型,配置簡單。linux

  無論是幾臺、幾百臺、幾千臺服務器,均可以使用salt在一箇中心節點上進行管控,靈活定位任意服務器子集來運行命令。 nginx

  Salt是python編寫的,支持用戶經過python自定義功能模塊,也提供了大量的python API接口,用戶能夠根據須要進行簡單快速的擴展json

安裝使用流程

  1. salt安裝服務器環境vim

    準備兩臺機器
     192.168.11.250  master端(主人,主機名)
    
     192.168.11.167  minion端  (奴隸,主機名  )
  2. 兩臺機器配置hosts文件,用於加速域名解析,以及分別安裝 salt-master 和salt-minion軟件服務器

    服務端:vim /etc/hosts 
     192.168.11.167  s17slave
     192.168.11.250 s17master
    
     客戶端:一樣 vim /etc/hosts 
     192.168.11.167  s17slave
     192.168.11.250 s17master
  3. 分別安裝軟件網絡

    安裝master服務端
    
     yum install salt-master -y
    
     安裝salve客戶端
     yum install salt-minion -y
  4. 主master的配置文件架構

    以下 /etc/salt/master 
    
     interface: 0.0.0.0
     publish_port: 4505
     user: root
     worker_threads: 5ret_port: 4506
     pidfile: /var/run/salt-master.pid
     log_file: /var/log/salt/master

5.從 minion的配置文件運維

master: s17master
master_port: 4506
user: root
id: s17slave
acceptance_wait_time: 10
log_file: /var/log/salt/minion

6.分別開啓 salt-master salt-minion,查看祕鑰接收狀況

systemctl start salt-master
systemctl start salt-minion

salt-key * #查看全部祕鑰狀況

salt-key -a  祕鑰名  #單獨的接收一個祕鑰信息

#祕鑰接收後,就被管控了
#讓s17master這臺機器,執行一條命令
salt  "s17slave"  cmd.run  "touch /tmp/大燒餅.txt "
  1. 檢查兩條祕鑰狀況

    在主執行
     salt-key -f s17slave
    
     在從執行
     salt-call --local key.finger
    
    
     salt-key
     只有Master接受了Minion Key後,才能進行管理。具體的認證命令爲salt-key經常使用的有以下命令。
    
    
     [root@linux-node1 ~]# salt-key -L
     Accepted Keys:  #已經接受的key
     Denied Keys:    #拒絕的key
     Unaccepted Keys:#未加入的key
     Rejected Keys:#吊銷的key

經常使用參數

-L  #查看KEY狀態
    -A  #容許全部
    -D  #刪除全部
    -a  #認證指定的key
    -d  #刪除指定的key
    -r  #註銷掉指定key(該狀態爲未被認證)

在master端/etc/salt/master配置

auto_accept: True   #若是對Minion信任,能夠配置master自動接受請求

檢測從機器是否存活

salt "*"  test.ping

salt的命令參數格式

salt命令 參數 目標 salt模塊的函數 遠程執行的參數

返回值的格式替換

salt --out=json "*" cmd.run  "hostname"

返回yaml的語法格式

salt --out=yaml "*" cmd.run  "hostname"

遠程安裝nginx

salt "*" pkg.install "nginx"
salt "*" pkg.remove  "nginx"

yaml語法學習

{
    "s17":{
        "男同窗":["帶勁","虎牙","股價爲"],
        "女同窗":["卜老師","於建才","溼老師"]
            }
}

yaml語法轉換以下

"s17":
    "男同窗":
      - "帶勁"
      - "虎牙"
      - "股價爲"
    "女同窗":
      - "嫖老師"
      - "於建才"
      - "股價爲"

salt數據管理之grains

salt 's17slave' grains.items


salt 's17slave' grains.item  ipv4  #單獨找出ipv4的信息

遠程關機

local.cmd('*','cmd.run',['poweroff'])
相關文章
相關標籤/搜索