target 就是目标的意思,你要在那台机器上执行此命令或此状态。或者说将此动作或者状态文件推送给谁来执行,让那个minion执行可以进行一些匹配

对于拥有大量机器的环境,如果单独一台台的执行指定minion去执行,反而违saltstack设计的初衷。

它有如下参数可以使用

1、

globbing 默认

  1. [root@master scripts]# salt 'minion01' test.ping
  2. minion01:
  3. True
  4. [root@master scripts]#

2、

-L,--list,以主机id名列表的形式进行过滤,不同主机id名称使用逗号分离。

  1. [root@master scripts]# salt -L 'minion01,minion02' test.ping
  2. minion02:
  3. True
  4. minion01:
  5. True
  6. [root@master scripts]#

3、

-E,--pcre,通过正则表达式进行匹配:

  1. [root@master scripts]# salt -E '.*01' test.ping
  2. minion01:
  3. True
  4. [root@master scripts]# salt -E 'minion*' test.ping
  5. minion02:
  6. True
  7. minion01:
  8. True
  9. [root@master scripts]# salt -E 'm.*02' test.ping
  10. minion02:
  11. True
  12. [root@master scripts]#

4、

-G,--grain,根据被控主机的grains信息进行匹配过滤,格式为:<grain value>:<grain expression>  

grains是存放在minion上的主机信息,包括系统信息和硬件信息等,我们能看到有很多项,使用grains.items能看到

  1. [root@master scripts]# salt 'minion01' grains.items
  2. minion01:
  3. ----------
  4. SSDs:
  5. biosreleasedate:
  6. 07/02/2015
  7. biosversion:
  8. 6.00
  9. cpu_flags:
  10. - fpu
  11. - vme
  12. - de
  13. - pse
  14. - tsc
  15. - msr
  16. - pae
  17. - mce
  18. - cx8
  19. - apic
  20. - sep
  21. - mtrr
  22. - pge
  23. - mca
  24. - cmov
  25. - pat
  26. - pse36
  27. - clflush
  28. - dts
  29. - mmx
  30. - fxsr
  31. - sse
  32. - sse2
  33. - ss
  34. - syscall
  35. - nx
  36. - pdpe1gb
  37. - rdtscp
  38. - lm
  39. - constant_tsc
  40. - arch_perfmon
  41. - pebs
  42. - bts
  43. - xtopology
  44. - tsc_reliable
  45. - nonstop_tsc
  46. - aperfmperf
  47. - unfair_spinlock
  48. - pni
  49. - pclmulqdq
  50. - ssse3
  51. - fma
  52. - cx16
  53. - pcid
  54. - sse4_1
  55. - sse4_2
  56. - x2apic
  57. - movbe
  58. - popcnt
  59. - tsc_deadline_timer
  60. - aes
  61. - xsave
  62. - avx
  63. - f16c
  64. - rdrand
  65. - hypervisor
  66. - lahf_lm
  67. - abm
  68. - 3dnowprefetch
  69. - ida
  70. - arat
  71. - xsaveopt
  72. - pln
  73. - pts
  74. - dts
  75. - fsgsbase
  76. - bmi1
  77. - hle
  78. - avx2
  79. - smep
  80. - bmi2
  81. - invpcid
  82. - rtm
  83. - rdseed
  84. - adx
  85. cpu_model:
  86. Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
  87. cpuarch:
  88. x86_64
  89. domain:
  90. fqdn:
  91. minion01
  92. fqdn_ip4:
  93. fqdn_ip6:
  94. gpus:
  95. |_
  96. ----------
  97. model:
  98. SVGA II Adapter
  99. vendor:
  100. unknown
  101. host:
  102. minion01
  103. hwaddr_interfaces:
  104. ----------
  105. eth0:
  106. 00:0c:29:22:4b:e9
  107. lo:
  108. 00:00:00:00:00:00
  109. id:
  110. minion01
  111. init:
  112. upstart
  113. ip4_interfaces:
  114. ----------
  115. eth0:
  116. - 10.0.1.172
  117. lo:
  118. - 127.0.0.1
  119. ip6_interfaces:
  120. ----------
  121. eth0:
  122. - fe80::20c:29ff:fe22:4be9
  123. lo:
  124. - ::1
  125. ip_interfaces:
  126. ----------
  127. eth0:
  128. - 10.0.1.172
  129. - fe80::20c:29ff:fe22:4be9
  130. lo:
  131. - 127.0.0.1
  132. - ::1
  133. ipv4:
  134. - 10.0.1.172
  135. - 127.0.0.1
  136. ipv6:
  137. - ::1
  138. - fe80::20c:29ff:fe22:4be9
  139. kernel:
  140. Linux
  141. kernelrelease:
  142. 2.6.32-504.el6.x86_64
  143. locale_info:
  144. ----------
  145. defaultencoding:
  146. UTF8
  147. defaultlanguage:
  148. en_US
  149. detectedencoding:
  150. UTF-8
  151. localhost:
  152. minion01
  153. lsb_distrib_codename:
  154. Final
  155. lsb_distrib_id:
  156. CentOS
  157. lsb_distrib_release:
  158. 6.6
  159. machine_id:
  160. 749e39b6649273bf0c83d26300000026
  161. manufacturer:
  162. VMware, Inc.
  163. master:
  164. master
  165. mdadm:
  166. mem_total:
  167. 3946
  168. nodename:
  169. minion01
  170. num_cpus:
  171. 4
  172. num_gpus:
  173. 1
  174. os:
  175. CentOS
  176. os_family:
  177. RedHat
  178. osarch:
  179. x86_64
  180. oscodename:
  181. Final
  182. osfinger:
  183. CentOS-6
  184. osfullname:
  185. CentOS
  186. osmajorrelease:
  187. 6
  188. osrelease:
  189. 6.6
  190. osrelease_info:
  191. - 6
  192. - 6
  193. path:
  194. /sbin:/usr/sbin:/bin:/usr/bin
  195. productname:
  196. VMware Virtual Platform
  197. ps:
  198. ps -efH
  199. pythonexecutable:
  200. /usr/bin/python2.6
  201. pythonpath:
  202. - /usr/bin
  203. - /usr/lib64/python26.zip
  204. - /usr/lib64/python2.6
  205. - /usr/lib64/python2.6/plat-linux2
  206. - /usr/lib64/python2.6/lib-tk
  207. - /usr/lib64/python2.6/lib-old
  208. - /usr/lib64/python2.6/lib-dynload
  209. - /usr/lib64/python2.6/site-packages
  210. - /usr/lib64/python2.6/site-packages/gst-0.10
  211. - /usr/lib64/python2.6/site-packages/gtk-2.0
  212. - /usr/lib64/python2.6/site-packages/webkit-1.0
  213. - /usr/lib/python2.6/site-packages
  214. - /usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info
  215. pythonversion:
  216. - 2
  217. - 6
  218. - 6
  219. - final
  220. - 0
  221. saltpath:
  222. /usr/lib/python2.6/site-packages/salt
  223. saltversion:
  224. 2015.5.10
  225. saltversioninfo:
  226. - 2015
  227. - 5
  228. - 10
  229. - 0
  230. selinux:
  231. ----------
  232. enabled:
  233. False
  234. enforced:
  235. Disabled
  236. serialnumber:
  237. VMware-56 4d d2 3c be 05 36 b5-e6 19 4e ef 0b 22 4b e9
  238. server_id:
  239. 1310197239
  240. shell:
  241. /bin/sh
  242. virtual:
  243. VMware
  244. zmqversion:
  245. 3.2.5
  246. [root@master scripts]#

  

使用方式如下

  1. [root@master scripts]# salt 'minion01' grains.get os
  2. minion01:
  3. CentOS
  4. [root@master scripts]# salt 'minion01' grains.get id
  5. minion01:
  6. minion01
  7. [root@master scripts]# salt -G 'os:CentOS' test.ping
  8. minion01:
  9. True
  10. minion02:
  11. True
  12. [root@master scripts]# salt -G 'id:minion01' test.ping
  13. minion01:
  14. True
  15. [root@master scripts]#

  

5、

-S根据IP或者子网匹配

  1. [root@master scripts]# salt -S '10.0.1.172' test.ping
  2. minion01:
  3. True
  4. [root@master scripts]# salt -S '10.0.1.173' test.ping
  5. minion02:
  6. True
  7. [root@master scripts]#
  1. [root@master master.d]# salt -S '10.0.1.0/24' test.ping
  2. minion02:
  3. True
  4. minion01:
  5. True
  6. [root@master master.d]#

  

6、

-C,组合匹配

根据条件运算符not、and、or去匹配不同规则的主机信息

  1. [root@master scripts]# salt -C 'E@m.*01 or G@id:minion02' test.ping
  2. minion01:
  3. True
  4. minion02:
  5. True
  6. [root@master scripts]# salt -C 'E@m.*02 or G@id:minion02' test.ping
  7. minion02:
  8. True
  9. [root@master scripts]#

7、  

-N

关于nodegroups

vim  /etc/salt/master

在9到12行提示说在当前目录下新建master.d目录,然后里面的*.conf的配置文件会被默认加载到配置里

  1. 9 # Per default, the master will automatically include all config files
  2. 10 # from master.d/*.conf (master.d is a directory in the same directory
  3. 11 # as the main master config file).
  4. 12 #default_include: master.d/*.conf

  

看到定义组,如下格式

711行到713行

  1. 707 ##### Node Groups #####
  2. 708 ##########################################
  3. 709 # Node groups allow for logical groupings of minion nodes. A group consists of a group
  4. 710 # name and a compound target.
  5. 711 #nodegroups:
  6. 712 # group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'
  7. 713 # group2: 'G@os:Debian and foo.domain.com'

接下来我们自定义组。这里我们创建master.d目录,在里面写组的配置。这样和这个master配置文件解耦,防止自己误操作导致master配置文件出问题

自定义两个组,lamp组,成员有minion01和minion02

lnmp组有minion02成员

  1. [root@master salt]# cd /etc/salt/
  2. [root@master salt]# ls
  3. master pki
  4. [root@master salt]# mkdir master.d
  5. [root@master salt]# ls -F
  6. master master.d/ pki/
  7. [root@master salt]# cd master.d/
  8. [root@master master.d]# ls
  9. [root@master master.d]# vim groups.conf
  10. [root@master master.d]# cat groups.conf
  11. nodegroups:
  12. lamp: L@minion01,minion02
  13. lnmp: minion02
  14. [root@master master.d]#

  

  1. [root@master master.d]# salt -N 'lamp' test.ping
  2. minion01:
  3. True
  4. minion02:
  5. True
  6. [root@master master.d]# salt -N 'lnmp' test.ping
  7. minion02:
  8. True
  9. [root@master master.d]#

 

8、  

-I,--pillar,根据被控主机的pillar信息进行匹配

这里只介绍怎么使用 -I 进行pillar数据的匹配。具体pillar怎么配置的请查看pillar的博文

  1. [root@master pillar]# salt '*' pillar.get apache
  2. minion01:
  3. minion02:
  4. httpd
  5. [root@master pillar]# salt -I 'apache:httpd' test.ping
  6. minion02:
  7. True
  8. [root@master pillar]#

  

saltstack实战2--远程执行之目标(target)的更多相关文章

  1. saltstack之(四)远程执行及常用模块

    前几篇文章已经完成了saltstack的安装.认证,从这篇文章开始学习使用saltstack的远程执行. 1.salt远程执行命令详解Usage: salt [options] '<target ...

  2. saltstack实战2--远程执行之返回(returner)

    saltstack有3大功能:远程执行,配置管理,云管理 其中远程执行又可分解为:目标,模块,返回  这3个部分. 比如下面语句 [root@master ~]# salt '*' test.ping ...

  3. saltstack实战2--远程执行之模块(Modules)

    本来转自http://www.cnblogs.com/MacoLee/p/5753640.html  版权归原作者所有 说明 salt '*' sys.list_modules #列出当前版本支持的模 ...

  4. Saltstack_使用指南06_远程执行-指定目标

    1. 主机规划 Targeting Minions文档 https://docs.saltstack.com/en/latest/contents.html 另请参见:自动化运维神器之saltstac ...

  5. 03 深入远程执行:target目标、模块modules、返回returns

    0.学习目的 http://docs.saltstack.cn/topics/execution/index.html  官方文档 0.1 命令解释 [root@host---- ~]# salt ' ...

  6. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

  7. Saltstack远程执行(四)

    Saltstack远程执行 语法例:salt '*' cmd.run 'w' -  命令:salt -  目标:'*' -  模块:cmd.run,自带150+模块,也可以自己写模块 -  返回:执行 ...

  8. 2、自动化运维之SaltStack远程执行详解

    SaltStack远程执行详解 ●目标(Targeting) ●模块(Module) ●返回(Returnners) 混合模式-C 选项 主机名设置参照: redis-node1-redis03-id ...

  9. saltstack远程执行命令.md

    saltstack 支持在master上向client 远程执行命令,并显示命令执行的结果 命令格式: salt '<操作目标>' <方法> [参数] 示例 示例1 ping检 ...

随机推荐

  1. ecstore 后台登陆跳转到 api失败,中心请求网店API失败

    解决过程没有具体参与,官方解决后回复的邮件,可以参考一下: 后台登陆错误图:   商派解决方法邮件:   特别注意:这个错误提示有时候也跟ecstore的nginx服务器伪静态有关,具体参考: htt ...

  2. 递归函数recursion

    1(调用自身)递归函数是‘自己调用自己‘的函数,不管这样的调用是直接的还是间接的. 2(递归出口)因为函数不可以一直调用自己,无法停止工作,所以递归函数一定具备结束条件. http://www.cnb ...

  3. 《精通ASP.NET MVC5》第2章 第一个MVC应用程序

      控制器     public class NewHomeController : Controller     {         // GET: /NewHome/         public ...

  4. 11道php面试题

    贡献11道php面试题及解决方法,跟大家总结一下曾经遇到的部分面试题.希望可以给大家得到帮助. 1. 什么事面向对象?主要特征是什么? 面象对象是把自然界的物体和概念直接映射到程序界的一种比较优雅的手 ...

  5. Activator.CreateInstance 方法 (Type) 的用法

    转自:http://www.cnblogs.com/lmfeng/archive/2012/01/30/2331666.html Activator.CreateInstance 方法 (Type) ...

  6. HibernateDaoSupport的使用

    1.HibernateDaoSupport是有spring提供的一个hibernate模版工具类,或不多说,直接上代码 接口 IGenericDao.java package org.hibernat ...

  7. PostgreSQL的 initdb 源代码分析之二十四

    继续分析: make_template0(); 展开: 无需再作解释,就是创建template0数据库 /* * copy template1 to template0 */ static void ...

  8. Perl多进程

    perl作为一种解释性的语言,非常受广大系统管理员的欢迎,优点么就不多说了,坏处也有不少,比如对线程的支持,就一直不咋地,所以大多数情况下,我们都须要多个进程,来帮助我们完毕工作,闲话少说,上代码. ...

  9. 用VS2010开发Android应用的配置方法

    在开发你的第一个Android应用程序之前,你应该先检查一下是否安装了Android SDK,以及是否创建好了Android模拟器(AVD),如果有不清楚的地方,请先看百度这篇文章“Android是什 ...

  10. SON-RPC for Java

    JSON-RPC for Java https://github.com/briandilley/jsonrpc4j#json-rpc-for-java This project aims to pr ...