SaltStack--使用salt-ssh


SaltStack使用salt-ssh模式

salt-ssh 介紹

參考官檔

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

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-ssh

[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參數自動認證)

[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是一個目標系統主機列表和或如連接到這些targets

配置文件說明:

# 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狀態判斷

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM