# rpm -ql salt-master /etc/salt/master # salt-master 主配置文件 /etc/salt/master.d # salt-master 擴展配置文件目錄 /etc/salt/pki/master # master key /usr/bin/salt # master 核心命令 /usr/bin/salt-cp # salt 文件傳輸命令 /usr/bin/salt-key # salt 證書管理命令 /usr/bin/salt-master # salt-master 服務命令(start,stop,restart) /usr/bin/salt-run # salt-master runner命令 /usr/bin/salt-unity
(1)salt 命令html
在命令能夠經過salt -h 獲取全部參數解釋,這裏主要介紹一些經常使用參數。node
Options: --version #查看saltstack程序的版本號 --versions-report #查看SaltStack程序以及依賴包的版本號 -h #查看幫助信息 -c CONFIG_DIR ,--config-dir=CONFIG_DIR #指定配置文件目錄(默認是/etc/salt/) -t TIMEOUT, --timeout=TIMEOUT #指定超時時間(默認是5秒) --hard-crash #捕捉到original異常不退出(默認關閉) -s, --static #以組的形式返回全部Minion的數據 --async #異步執行 -v, --verbose #verbose模式 --show-timeout #顯示minion timeout狀態 --show-jid 顯示任務jid -b BATCH, --batch=BATCH #按照百分比執行任務 -a EAUTH, --auth=EAUTH,--eauth=EAUTH,--external-auth=EAUTH #指定外部認證 -T, --make-token #生成Master token --return=RETURNER #指定saltstack return (mysql/redis), 將執行結果存儲到mysql/redis,須要在配置文件中指定地址帳號密碼等 -d, --doc #查看指定模塊或者全部模塊文檔 --args-separator=ARGS_SEPARATOR #設置多個傳參指定分隔符(同時執行多個模塊) --summary #顯示彙總信息 --username=USERNAME #指定外部認證用戶名 --password=PASSWORD #指定外部認證密碼
(2)salt-key 命令mysql
在master端管理minion key。正則表達式
Options: -l ARG, --list=ARG # 顯示指定狀態的key(支持正則) -L, #顯示全部public keys -a # 接受指定等待的key(支持正則) -A # 接受全部等待認證的key -r key # 拒絕指定等待認證的key(支持正則) -R # 拒絕全部 --include-all # 顯示全部狀態的key(包含non-pending狀態) -p key # 打印指定key(支持正則),顯示key內容 -P # 打印全部key -d key # 刪除指定key -D # 刪除全部key -f key # 顯示指定key的指紋信息(支持正則) -F # 顯示全部key的指紋信息
# rpm -ql salt-minion /etc/salt/minion # 主配置文件 /etc/salt/minion.d # 擴展配置文件目錄 /etc/salt/pki/minion # key /etc/salt/proxy /usr/bin/salt-call # salt minion 端主命令,相似於master端的salt /usr/bin/salt-minion # salt minion 服務命令 /usr/bin/salt-proxy
(1)salt-callredis
客戶端主要命令。sql
Options: --version # 查看SaltStack程序的版本號 --versions-report # 查看SaltStack程序以及依賴包的版本號 -h, --help # 幫助信息 -c CONFIG_DIR # 指定配置文件目錄(默認/etc/salt/) --hard-crash # 捕捉到original異常不退出(默認關閉) -g # 返回的信息生成grains -m MODULE_DIRS #指定自定義模塊目錄 -d #查看指定模塊全部模塊文檔 --master=MASTER # 指定saltstack MASTER --return=RETURNER # 指定return --local # 運行masterless模式(不須要master端,只對本機負責的一種工做機制) --file-root=FILE_ROOT # 指定file-root目錄 --pillar-root=PILLAR_ROOT # 指定pillar-root目錄 --retcode-passthrough # 顯示salt-call命令返回狀態 --id=ID # 指定一個minion ID --metadata # 打印metadata信息 --skip-grains # 不加載grains信息 --refresh-grains-cache # 強制刷新grains信息
在SaltStack系統中的管理對象叫作Target。簡寫: tgt安全
(1)正則表達式服務器
# 正則表達式匹配的是 Minion端的 ID 值 salt -E 'min*' test.ping
(2)list 列表匹配架構
# 列表匹配也是匹配的Minion端的 ID 值 salt -L minion1,minion2 test.ping salt -L minion1, test.ping salt -L minion1 test.ping
(3)Grains 匹配less
# 經過minions的grains item 來匹配 salt -G 'os:CentOS' test.ping
(4)組匹配
# 經過對minion分組,對整個組進行匹配,操做,groups是組名 # 組是須要人爲劃分的 salt -N groups test.ping
(5)複合匹配
# 複合匹配支持使用and和or關聯多個條件 salt -C 'G@os:Centos or L@Minion1' test.ping
(6)Pillar值匹配
# key:value 是Pillar系統中定義的一組鍵值對,跟Grains的鍵值對相似。 salt -I 'key:value' test.ping
(7)CIDR匹配
# 經過一個指定的CIDR網段,這裏CIDR匹配的IP地址是Minion鏈接Master 4505端口的來源地址 salt -S '192.168.1.0/24' test.ping
經過對minion id 進行分組,能夠經過組這個概念來批量操做受控主機。分組信息默認保存在 /etc/salt/master。能夠經過建立子配置文件的方式來修改存放分組信息的文件。在master的主配置文件中有include配置文件(子配置文件)的設定: default_include: master.d/*.conf , 目錄和文件都須要本身來建立。這樣能夠避免直接操做Master主配置文件 。
分組語法:
注意:分組語法與匹配相似,注意區分。匹配中可使用and, or 及not等boolean 型操做。
分組配置文件示例
# /etc/salt/master.d/group.conf nodegroups: group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com' group2: 'G@os:Debian and foo.domain.com' group3: 'G@os:Debian and N@group1' group4: - 'G@foo:bar' - 'or' - 'G@foo:baz
分組後記得須要重啓salt-master,才能加載新的分組信息。
# 每次同時執行10臺執行,就是每10臺一組執行cmd.run [root@salt-master ~]# salt '*' -b 10 cmd.run 'whoami' Executing run on ['salt-master '] salt-master : root jid: 20171222160450456555 retcode: 0