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检 ...
随机推荐
- LINUX的一些常用操作
CentOs6.7关闭防火墙(SecureCRT连接不上) 解决方法:______________________________________一.开启SSH以root用户登录Linux,打开终端, ...
- 神经网络环境搭建,windows上安装theano和keras的流程
今天碰到有朋友问道怎么在windows下安装keras,正好我刚完成搭建,总结下过程,也算是一个教程吧,给有需要的朋友. 步骤一:安装python. 这一步没啥好说的,下载相应的python安装即可, ...
- iOS开发-Core Location和Map Kit
一.Core Location确定物理位置 利用以下3种技术: 1.GPS(最精确的) 2.蜂窝基站ID定位(cell ID Location) 3.WPS(Wi-Fi Positioning Ser ...
- UVa532 Dungeon Master 三维迷宫
学习点: scanf可以自动过滤空行 搜索时要先判断是否越界(L R C),再判断其他条件是否满足 bfs搜索时可以在入口处(push时)判断是否达到目标,也可以在出口处(pop时) #i ...
- Computer Science Theory for the Information Age-1: 高维空间中的球体
高维空间中的球体 注:此系列随笔是我在阅读图灵奖获得者John Hopcroft的最新书籍<Computer Science Theory for the Information Age> ...
- 类型查找器 ITypeFinder
NopCommerce为了支持插件功能,以及支持一些自动注册的功能.系统提供了类型查找器.ITypeFinder以及实现类就是提供此功能.通过类型查找器可以查找本程序域中的类,也可以查找整个bin目录 ...
- vs2010 编译Qt5.2 rc1
首先要准备一些依赖: 下载Qt 5.2.0 rc版的源码 qt-everywhere-opensource-src-5.2.0-rc1.7z 并解压出来, 我的路径为D:\qt5\qt-src-5.2 ...
- 小白日记5:kali渗透测试之被动信息收集(四)--theHarvester,metagoofil,meltag,个人专属密码字典--CUPP
1.theHarvester theHarvester是一个社会工程学工具,它通过搜索引擎.PGP服务器以及SHODAN数据库收集用户的email,子域名,主机,雇员名,开放端口和banner信息. ...
- BootStrap2学习日记4---常用标签与样式
<small>:常常和h1标签一起搭配使用 如<h1>标题<small>小标题</small></h1> <abbr>:abbr ...
- A real ROCA using Bootstrap, jQuery, Thymeleaf, Spring HATEOAS and Spring MVC
http://www.tuicool.com/articles/ENfe2u https://github.com/tobiasflohre/movie-database What is the be ...