saltstack实战2--远程执行之目标(target)
target 就是目标的意思,你要在那台机器上执行此命令或此状态。或者说将此动作或者状态文件推送给谁来执行,让那个minion执行可以进行一些匹配
对于拥有大量机器的环境,如果单独一台台的执行指定minion去执行,反而违saltstack设计的初衷。
它有如下参数可以使用
1、
globbing 默认
- [root@master scripts]# salt 'minion01' test.ping
- minion01:
- True
- [root@master scripts]#
2、
-L,--list,以主机id名列表的形式进行过滤,不同主机id名称使用逗号分离。
- [root@master scripts]# salt -L 'minion01,minion02' test.ping
- minion02:
- True
- minion01:
- True
- [root@master scripts]#
3、
-E,--pcre,通过正则表达式进行匹配:
- [root@master scripts]# salt -E '.*01' test.ping
- minion01:
- True
- [root@master scripts]# salt -E 'minion*' test.ping
- minion02:
- True
- minion01:
- True
- [root@master scripts]# salt -E 'm.*02' test.ping
- minion02:
- True
- [root@master scripts]#
4、
-G,--grain,根据被控主机的grains信息进行匹配过滤,格式为:<grain value>:<grain expression>
grains是存放在minion上的主机信息,包括系统信息和硬件信息等,我们能看到有很多项,使用grains.items能看到
- [root@master scripts]# salt 'minion01' grains.items
- minion01:
- ----------
- SSDs:
- biosreleasedate:
- 07/02/2015
- biosversion:
- 6.00
- cpu_flags:
- - fpu
- - vme
- - de
- - pse
- - tsc
- - msr
- - pae
- - mce
- - cx8
- - apic
- - sep
- - mtrr
- - pge
- - mca
- - cmov
- - pat
- - pse36
- - clflush
- - dts
- - mmx
- - fxsr
- - sse
- - sse2
- - ss
- - syscall
- - nx
- - pdpe1gb
- - rdtscp
- - lm
- - constant_tsc
- - arch_perfmon
- - pebs
- - bts
- - xtopology
- - tsc_reliable
- - nonstop_tsc
- - aperfmperf
- - unfair_spinlock
- - pni
- - pclmulqdq
- - ssse3
- - fma
- - cx16
- - pcid
- - sse4_1
- - sse4_2
- - x2apic
- - movbe
- - popcnt
- - tsc_deadline_timer
- - aes
- - xsave
- - avx
- - f16c
- - rdrand
- - hypervisor
- - lahf_lm
- - abm
- - 3dnowprefetch
- - ida
- - arat
- - xsaveopt
- - pln
- - pts
- - dts
- - fsgsbase
- - bmi1
- - hle
- - avx2
- - smep
- - bmi2
- - invpcid
- - rtm
- - rdseed
- - adx
- cpu_model:
- Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
- cpuarch:
- x86_64
- domain:
- fqdn:
- minion01
- fqdn_ip4:
- fqdn_ip6:
- gpus:
- |_
- ----------
- model:
- SVGA II Adapter
- vendor:
- unknown
- host:
- minion01
- hwaddr_interfaces:
- ----------
- eth0:
- 00:0c:29:22:4b:e9
- lo:
- 00:00:00:00:00:00
- id:
- minion01
- init:
- upstart
- ip4_interfaces:
- ----------
- eth0:
- - 10.0.1.172
- lo:
- - 127.0.0.1
- ip6_interfaces:
- ----------
- eth0:
- - fe80::20c:29ff:fe22:4be9
- lo:
- - ::1
- ip_interfaces:
- ----------
- eth0:
- - 10.0.1.172
- - fe80::20c:29ff:fe22:4be9
- lo:
- - 127.0.0.1
- - ::1
- ipv4:
- - 10.0.1.172
- - 127.0.0.1
- ipv6:
- - ::1
- - fe80::20c:29ff:fe22:4be9
- kernel:
- Linux
- kernelrelease:
- 2.6.32-504.el6.x86_64
- locale_info:
- ----------
- defaultencoding:
- UTF8
- defaultlanguage:
- en_US
- detectedencoding:
- UTF-8
- localhost:
- minion01
- lsb_distrib_codename:
- Final
- lsb_distrib_id:
- CentOS
- lsb_distrib_release:
- 6.6
- machine_id:
- 749e39b6649273bf0c83d26300000026
- manufacturer:
- VMware, Inc.
- master:
- master
- mdadm:
- mem_total:
- 3946
- nodename:
- minion01
- num_cpus:
- 4
- num_gpus:
- 1
- os:
- CentOS
- os_family:
- RedHat
- osarch:
- x86_64
- oscodename:
- Final
- osfinger:
- CentOS-6
- osfullname:
- CentOS
- osmajorrelease:
- 6
- osrelease:
- 6.6
- osrelease_info:
- - 6
- - 6
- path:
- /sbin:/usr/sbin:/bin:/usr/bin
- productname:
- VMware Virtual Platform
- ps:
- ps -efH
- pythonexecutable:
- /usr/bin/python2.6
- pythonpath:
- - /usr/bin
- - /usr/lib64/python26.zip
- - /usr/lib64/python2.6
- - /usr/lib64/python2.6/plat-linux2
- - /usr/lib64/python2.6/lib-tk
- - /usr/lib64/python2.6/lib-old
- - /usr/lib64/python2.6/lib-dynload
- - /usr/lib64/python2.6/site-packages
- - /usr/lib64/python2.6/site-packages/gst-0.10
- - /usr/lib64/python2.6/site-packages/gtk-2.0
- - /usr/lib64/python2.6/site-packages/webkit-1.0
- - /usr/lib/python2.6/site-packages
- - /usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info
- pythonversion:
- - 2
- - 6
- - 6
- - final
- - 0
- saltpath:
- /usr/lib/python2.6/site-packages/salt
- saltversion:
- 2015.5.10
- saltversioninfo:
- - 2015
- - 5
- - 10
- - 0
- selinux:
- ----------
- enabled:
- False
- enforced:
- Disabled
- serialnumber:
- VMware-56 4d d2 3c be 05 36 b5-e6 19 4e ef 0b 22 4b e9
- server_id:
- 1310197239
- shell:
- /bin/sh
- virtual:
- VMware
- zmqversion:
- 3.2.5
- [root@master scripts]#
使用方式如下
- [root@master scripts]# salt 'minion01' grains.get os
- minion01:
- CentOS
- [root@master scripts]# salt 'minion01' grains.get id
- minion01:
- minion01
- [root@master scripts]# salt -G 'os:CentOS' test.ping
- minion01:
- True
- minion02:
- True
- [root@master scripts]# salt -G 'id:minion01' test.ping
- minion01:
- True
- [root@master scripts]#
5、
-S根据IP或者子网匹配
- [root@master scripts]# salt -S '10.0.1.172' test.ping
- minion01:
- True
- [root@master scripts]# salt -S '10.0.1.173' test.ping
- minion02:
- True
- [root@master scripts]#
- [root@master master.d]# salt -S '10.0.1.0/24' test.ping
- minion02:
- True
- minion01:
- True
- [root@master master.d]#
6、
-C,组合匹配
根据条件运算符not、and、or去匹配不同规则的主机信息
- [root@master scripts]# salt -C 'E@m.*01 or G@id:minion02' test.ping
- minion01:
- True
- minion02:
- True
- [root@master scripts]# salt -C 'E@m.*02 or G@id:minion02' test.ping
- minion02:
- True
- [root@master scripts]#
7、
-N
关于nodegroups
vim /etc/salt/master
在9到12行提示说在当前目录下新建master.d目录,然后里面的*.conf的配置文件会被默认加载到配置里
- 9 # Per default, the master will automatically include all config files
- 10 # from master.d/*.conf (master.d is a directory in the same directory
- 11 # as the main master config file).
- 12 #default_include: master.d/*.conf
看到定义组,如下格式
711行到713行
- 707 ##### Node Groups #####
- 708 ##########################################
- 709 # Node groups allow for logical groupings of minion nodes. A group consists of a group
- 710 # name and a compound target.
- 711 #nodegroups:
- 712 # group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'
- 713 # group2: 'G@os:Debian and foo.domain.com'
接下来我们自定义组。这里我们创建master.d目录,在里面写组的配置。这样和这个master配置文件解耦,防止自己误操作导致master配置文件出问题
自定义两个组,lamp组,成员有minion01和minion02
lnmp组有minion02成员
- [root@master salt]# cd /etc/salt/
- [root@master salt]# ls
- master pki
- [root@master salt]# mkdir master.d
- [root@master salt]# ls -F
- master master.d/ pki/
- [root@master salt]# cd master.d/
- [root@master master.d]# ls
- [root@master master.d]# vim groups.conf
- [root@master master.d]# cat groups.conf
- nodegroups:
- lamp: L@minion01,minion02
- lnmp: minion02
- [root@master master.d]#
- [root@master master.d]# salt -N 'lamp' test.ping
- minion01:
- True
- minion02:
- True
- [root@master master.d]# salt -N 'lnmp' test.ping
- minion02:
- True
- [root@master master.d]#
8、
-I,--pillar,根据被控主机的pillar信息进行匹配
这里只介绍怎么使用 -I 进行pillar数据的匹配。具体pillar怎么配置的请查看pillar的博文
- [root@master pillar]# salt '*' pillar.get apache
- minion01:
- minion02:
- httpd
- [root@master pillar]# salt -I 'apache:httpd' test.ping
- minion02:
- True
- [root@master pillar]#
saltstack实战2--远程执行之目标(target)的更多相关文章
- saltstack之(四)远程执行及常用模块
前几篇文章已经完成了saltstack的安装.认证,从这篇文章开始学习使用saltstack的远程执行. 1.salt远程执行命令详解Usage: salt [options] '<target ...
- saltstack实战2--远程执行之返回(returner)
saltstack有3大功能:远程执行,配置管理,云管理 其中远程执行又可分解为:目标,模块,返回 这3个部分. 比如下面语句 [root@master ~]# salt '*' test.ping ...
- saltstack实战2--远程执行之模块(Modules)
本来转自http://www.cnblogs.com/MacoLee/p/5753640.html 版权归原作者所有 说明 salt '*' sys.list_modules #列出当前版本支持的模 ...
- Saltstack_使用指南06_远程执行-指定目标
1. 主机规划 Targeting Minions文档 https://docs.saltstack.com/en/latest/contents.html 另请参见:自动化运维神器之saltstac ...
- 03 深入远程执行:target目标、模块modules、返回returns
0.学习目的 http://docs.saltstack.cn/topics/execution/index.html 官方文档 0.1 命令解释 [root@host---- ~]# salt ' ...
- Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件
一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...
- Saltstack远程执行(四)
Saltstack远程执行 语法例:salt '*' cmd.run 'w' - 命令:salt - 目标:'*' - 模块:cmd.run,自带150+模块,也可以自己写模块 - 返回:执行 ...
- 2、自动化运维之SaltStack远程执行详解
SaltStack远程执行详解 ●目标(Targeting) ●模块(Module) ●返回(Returnners) 混合模式-C 选项 主机名设置参照: redis-node1-redis03-id ...
- saltstack远程执行命令.md
saltstack 支持在master上向client 远程执行命令,并显示命令执行的结果 命令格式: salt '<操作目标>' <方法> [参数] 示例 示例1 ping检 ...
随机推荐
- ecstore 后台登陆跳转到 api失败,中心请求网店API失败
解决过程没有具体参与,官方解决后回复的邮件,可以参考一下: 后台登陆错误图: 商派解决方法邮件: 特别注意:这个错误提示有时候也跟ecstore的nginx服务器伪静态有关,具体参考: htt ...
- 递归函数recursion
1(调用自身)递归函数是‘自己调用自己‘的函数,不管这样的调用是直接的还是间接的. 2(递归出口)因为函数不可以一直调用自己,无法停止工作,所以递归函数一定具备结束条件. http://www.cnb ...
- 《精通ASP.NET MVC5》第2章 第一个MVC应用程序
控制器 public class NewHomeController : Controller { // GET: /NewHome/ public ...
- 11道php面试题
贡献11道php面试题及解决方法,跟大家总结一下曾经遇到的部分面试题.希望可以给大家得到帮助. 1. 什么事面向对象?主要特征是什么? 面象对象是把自然界的物体和概念直接映射到程序界的一种比较优雅的手 ...
- Activator.CreateInstance 方法 (Type) 的用法
转自:http://www.cnblogs.com/lmfeng/archive/2012/01/30/2331666.html Activator.CreateInstance 方法 (Type) ...
- HibernateDaoSupport的使用
1.HibernateDaoSupport是有spring提供的一个hibernate模版工具类,或不多说,直接上代码 接口 IGenericDao.java package org.hibernat ...
- PostgreSQL的 initdb 源代码分析之二十四
继续分析: make_template0(); 展开: 无需再作解释,就是创建template0数据库 /* * copy template1 to template0 */ static void ...
- Perl多进程
perl作为一种解释性的语言,非常受广大系统管理员的欢迎,优点么就不多说了,坏处也有不少,比如对线程的支持,就一直不咋地,所以大多数情况下,我们都须要多个进程,来帮助我们完毕工作,闲话少说,上代码. ...
- 用VS2010开发Android应用的配置方法
在开发你的第一个Android应用程序之前,你应该先检查一下是否安装了Android SDK,以及是否创建好了Android模拟器(AVD),如果有不清楚的地方,请先看百度这篇文章“Android是什 ...
- SON-RPC for Java
JSON-RPC for Java https://github.com/briandilley/jsonrpc4j#json-rpc-for-java This project aims to pr ...