saltstack匹配minion以及自定義使用者組nodegroup(三)

紫翼龍王夜發表於2015-03-11

前提:操作在master在進行 minion id minion的唯一標示。預設情況minion id是minion的主機名(FQDN),你可以透過id來指定minion的名字. salt預設使用shell樣式,當然也可以在states.sls中定義。本文主要記錄的是匹配minion,以為只有正確的匹配,才是你以後批次管理機器的前提。

匹配當前所有的minion:

root@salt ~ # salt '*' test.ping
cdn20-002:
  True
cdn20-001:
    True
app10-104:
    True
cdn20-003:
    True
其中 '*' 是匹配當前saltmaster接收到所有minion客戶端;test.ping是salt預設的驗證通訊命令 

匹配以cdn開頭的所有機器:

root@salt ~ # salt 'cdn*' test.ping
cdn20-002:
    True
cdn20-005:
    True
cdn20-004:
    True
cdn20-001:
    True
cdn20-003:
    True 

匹配cdn20-001/004的機器:

root@salt ~ # salt 'cdn20-00[1-4]' test.ping
cdn20-002:
    True
cdn20-001:
    True
cdn20-003:
    True
cdn20-004:
    True 

minion也可以透過Perl-compatible正規表示式進行匹配.匹配cdn和sa的機器

root@salt ~ # salt -E 'cdn|sa' test.ping
cdn20-005:
    True
cdn20-002:
    True
sa10-003:
    True
cdn20-004:
    True
cdn20-001:
    True
cdn20-003:
    True 

指定特定的機器進行匹配,比如,我想匹配cdn20-002\cdn20-004:

root@salt ~ # salt -L 'cdn20-002,cdn20-004' test.ping
cdn20-002:
    True
cdn20-004:
    True 

自定義組進行匹配:

使用組進行匹配的前提,必要要在master裡面定於組的相關資訊

root@salt ~ # vim /etc/salt/master.d/nodegroups.conf         
master.d之前的記錄已經介紹過,在master裡面開啟default_include: master.d/*.conf
root@salt ~ # cat /etc/salt/master.d/nodegroups.conf 
nodegroups:
  my_app: 'app10-091'
  squid_20: 'cdn20-*'
  mendian: 'app10-114'
  person: 'L@app10-112,app10-113' 

檢視squid_20這個組的相關資訊:

root@salt ~ # salt -N 'squid_20' test.ping
cdn20-002:
    True
cdn20-005:
    True
cdn20-004:
    True
cdn20-003:
    True
cdn20-001:
    True

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30129545/viewspace-1456748/,如需轉載,請註明出處,否則將追究法律責任。

相關文章