日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SaltStack匹配target-第六篇

發布時間:2023/12/1 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SaltStack匹配target-第六篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

練習內容

Salt遠程執行中目標選擇常用的模式

1.通配符匹配

2.正則表達式匹配

3.List支持

4.Grains匹配

5.IP地址匹配

6.混合匹配

7.Node groups

遠程執行格式

target就是我們要選擇的minion
salt '<target>' <function> [arguments]
一,通配符匹配,支持minon_id
[root@linux-node1 salt]# salt "*" test.ping linux-node1.example.com:True linux-node2.example.com:True [root@linux-node1 salt]# salt "*node1*" test.ping linux-node1.example.com:True
二,正則表達式,同樣也支持在狀態文件里面使用
[root@linux-node1 salt]# salt -E "linux-node[0-1].example.com" test.ping linux-node1.example.com:True [root@linux-node1 salt]# salt -E "linux-node[0-2].example.com" test.ping linux-node1.example.com:True linux-node2.example.com:True
三,List支持
[root@linux-node1 salt]# salt -L "linux-node1.example.com,linux-node2.example.com" "test.ping" linux-node2.example.com:True linux-node1.example.com:True
四,Grains匹配
[root@linux-node1 salt]# salt -G 'os:CentOS' test.ping linux-node1.example.com:True linux-node2.example.com:True[root@linux-node1 salt]# salt -G 'cpuarch:x86_64' test.ping linux-node1.example.com:True linux-node2.example.com:True
五,IP地址匹配
root@linux-node1 salt]# salt -S "192.168.56.0/255.255.255.0" test.ping #注意不支持 255.255.255.0子網掩碼寫法 No minions matched the target. No command was sent, no jid was assigned. ERROR: No return received [root@linux-node1 salt]# salt -S "192.168.56.0/24" test.ping linux-node1.example.com:True linux-node2.example.com:True [root@linux-node1 salt]# salt -S "192.168.56.11" test.ping linux-node1.example.com:True
六,混合匹配(不建議使用,看起來有些亂)
[root@linux-node1 salt]# salt -C 'S@192.168.56.11 or E@linux-node[0-2].example.com' test.ping linux-node1.example.com:True linux-node2.example.com:True
七,Node groups方式需要寫在Master配置文件里面,不需要重啟salt-master服務就生效

對目標服務器分組有以下七種方式,這七種方式的標示符分別為:

  • G -- 針對 Grains 做單個匹配,例如:G@os:Ubuntu
  • E -- 針對 minion 針對正則表達式做匹配,例如:E@web\d+.(dev|qa|prod).loc
  • P -- 針對 Grains 做正則表達式匹配,例如:P@os:(RedHat|Fedora|CentOS)
  • L -- 針對 minion 做列表匹配,例如:L@minion1.example.com,minion3.domain.com or bl*.domain.com
  • I -- 針對 Pillar 做單個匹配,例如:I@pdata:foobar
  • S -- 針對子網或是 IP 做匹配,例如:S@192.168.1.0/24 or S@192.168.1.100
  • R -- 針對客戶端范圍做匹配,例如: R@%foo.bar
  • nodegroups:group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'group2: 'G@os:Debian and foo.domain.com'group3: 'G@os:Debian and N@group1'

    有時候因為minion的版本問題是要nodegroups會報錯如下

    [DEBUG ] Passing on saltutil error. This may be an error in saltclient. 'retcode'

    這時候可以升級minion客戶端解決問題

    yum install https://repo.saltstack.com/yum/redhat/salt-repo-2017.7-1.el7.noarch.rpm #安裝最新的源

    升級minion客戶端,重啟minion就可以解決問題

    yum install salt-minion -y

    總結

    1.混合匹配不建議使用,看起來有些亂

    2.List模式在平時維護的時候用的少,但是在二次開發建議用Grains采集到數據,然后select拼接成list再調用后端api去執行

    3.控制并發可以使用 batch size,簡寫 -b 如果是1就串行,也支持百分比如 -b 50%

    [root@linux-node1 salt]# salt '*' -b 1 test.pingExecuting run on ['linux-node2.example.com']linux-node2.example.com:True retcode:0Executing run on ['linux-node1.example.com']linux-node1.example.com:True retcode:0

    百分比使用方法

    [root@linux-node1 salt]# salt '*' -b 50% test.pingExecuting run on ['linux-node2.example.com']linux-node2.example.com:True retcode:0Executing run on ['linux-node1.example.com']linux-node1.example.com:True retcode:0

    附:英文參考文檔

    https://www.unixhot.com/docs/saltstack/topics/tutorials/modules.html#target

    https://www.unixhot.com/docs/saltstack/topics/targeting/index.html

    轉載于:https://www.cnblogs.com/xiewenming/p/7711977.html

    總結

    以上是生活随笔為你收集整理的SaltStack匹配target-第六篇的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。