SaltStack--使用salt-ssh

SaltStack使用salt-ssh模式

salt-ssh 介紹

參考官檔html

salt-ssh 0.17.0 新引入的一個功能,不須要minion對客戶端進行管理,也能夠不須要mastersalt-ssh也支持salt大部分的功能:好比grains,modules,state等;salt-ssh沒有使用ZeroMQ的通訊架構,執行是串行模式python

salt-ssh執行原理

  • salt-ssh是在salt基礎上打了一個python包上傳到客戶端的默認tmp目錄下, 在客戶端上面解壓並執行返回結果,最後刪除tmp上傳的臨時文件。
  • salt-minion方法是salt-mater先執行語法驗證,驗證經過後發送到minionminion收到Msater的狀態文件默認保存在/var/cache/salt/minion
  • salt-sshsalt-minion能夠共存,salt-minion不依賴於ssh服務

安裝配置

1)安裝salt-sshshell

[root@salt-master ~]# yum -y install salt-ssh

2)修改roster文件,配置須要管理的機器數據庫

[root@salt-master ~]# vim /etc/salt/roster
salt-minion01:
  host: 192.168.1.31
  user: root
  passwd: 123456
  port: 22

salt-minion02:
  host: 192.168.1.32
  user: root
  passwd: 123456
  port: 22

3)管理測試 (說明,若是第一次須要輸入yes或no進行ssh認證,能夠加-i參數自動認證)vim

[root@salt-master ~]# salt-ssh '*' test.ping -i
salt-minion01:
    True
salt-minion02:
    True

4)salt-ssh命令參數後端

-r, –raw, –raw-shell # 直接使用shell命令
–priv #指定SSH私有密鑰文件
–roster #定義使用哪一個roster系統,若是定義了一個後端數據庫,掃描方式,或者用戶自定義的的roster系統,默認的就是/etc/salt/roster文件
–roster-file #指定roster文件
–refresh, –refresh-cache #刷新cache,若是target的grains改變會自動刷新
–max-procs #指定進程數,默認爲25
-i, –ignore-host-keys #當ssh鏈接時,忽略keys
–passwd #指定默認密碼
–key-deploy #配置keys 設置這個參數對於全部minions用來部署ssh-key認證,
 這個參和–passwd結合起來使用會使初始化部署很快很方便。當調用master模塊時,並加上參數 –key-deploy 便可在minions生成keys,下次開始就不使用密碼

5)salt-ssh執行命令數據結構

[root@salt-master ~]# salt-ssh '*' -r "uptime"
salt-minion01:
    ----------
    retcode:
        0
    stderr:
    stdout:
        root@192.168.1.31's password: 
         10:06:08 up 1 day, 17:05,  2 users,  load average: 0.00, 0.01, 0.05
salt-minion02:
    ----------
    retcode:
        0
    stderr:
    stdout:
        root@192.168.1.32's password: 
         10:06:08 up 1 day, 17:16,  2 users,  load average: 0.03, 0.06, 0.06

6)salt-ssh執行狀態模塊架構

[root@salt-master ~]# salt-ssh '*' state.sls modules.haproxy.service saltenv=prod
salt-minion02:
----------
          ID: haproxy-install
    Function: pkg.installed
        Name: haproxy
      Result: True
     Comment: All specified packages are already installed
     Started: 10:09:48.541019
    Duration: 10161.705 ms
     Changes:   
----------
          ID: haproxy-config
    Function: file.managed
        Name: /etc/haproxy/haproxy.cfg
      Result: True
     Comment: File /etc/haproxy/haproxy.cfg is in the correct state
     Started: 10:09:59.020659
    Duration: 54.263 ms
     Changes:   
----------
          ID: haproxy-service
    Function: service.running
        Name: haproxy
      Result: True
     Comment: The service haproxy is already running
     Started: 10:09:59.079110
    Duration: 128.052 ms
     Changes:   

Summary for salt-minion02
------------
Succeeded: 3
Failed:    0
------------
Total states run:     3
Total run time:  10.344 s
salt-minion01:
----------
          ID: haproxy-install
    Function: pkg.installed
        Name: haproxy
      Result: True
     Comment: All specified packages are already installed
     Started: 10:10:00.561015
    Duration: 2862.018 ms
     Changes:   
----------
          ID: haproxy-config
    Function: file.managed
        Name: /etc/haproxy/haproxy.cfg
      Result: True
     Comment: File /etc/haproxy/haproxy.cfg is in the correct state
     Started: 10:10:03.905713
    Duration: 220.443 ms
     Changes:   
----------
          ID: haproxy-service
    Function: service.running
        Name: haproxy
      Result: True
     Comment: The service haproxy is already running
     Started: 10:10:04.135607
    Duration: 230.231 ms
     Changes:   

Summary for salt-minion01
------------
Succeeded: 3
Failed:    0
------------
Total states run:     3
Total run time:   3.313 s

Roster說明

salt-ssh須要一個名單系統來肯定哪些執行目標,Salt0.17.0版本中salt-ssh引入roster系統
roster系統編譯成了一個數據結構,包含了targets,這些targets是一個目標系統主機列表和或如鏈接到這些targetsssh

配置文件說明:測試

# target的信息
    host:        # 遠端主機的ip地址或者dns域名
    user:        # 登陸的用戶
    passwd:      # 用戶密碼,若是不使用此選項,則默認使用祕鑰方式
# 可選的部分
    port:        #ssh端口
    sudo:        #能夠經過sudo
    tty:         # 若是設置了sudo,設置這個參數爲true
    priv:        # ssh祕鑰的文件路徑
    timeout:     # 當創建連接時等待響應時間的秒數
    minion_opts: # minion的位置路徑
    thin_dir:    # target系統的存儲目錄,默認是/tmp/salt-<hash>
    cmd_umask:   # 使用salt-call命令的umask值

 

saltstack快速入門

saltstack遠程執行

saltstack配置管理

saltstack數據系統

saltstack狀態判斷

相關文章
相關標籤/搜索