fonzie
1、saltstack的一个比较突出的优势是具备执行远程命令的功能,操作方法与func(https://fedorahosted.org/func/)类是
 
命令格式:
salt \'<操作目标>\' <方法>[参数]
 
查看被控主机的内存使用情况
# salt \'*\' cmd.run \'free -h\'
jenkins:
total used free shared buffers cached
Mem: 975M 326M 648M 976K 55M 134M
-/+ buffers/cache: 137M 837M
Swap: 1.0G 0B 1.0G
chosefine-cnetos:
total used free shared buff/cache available
Mem: 976M 235M 201M 6.6M 539M 559M
Swap: 2.0G 0B 2.0G
 
 
 
2、其中saltstack提供了多种方法对被控端主机id进行过滤。
1)-E,-pcre,通过正则表达式进行匹配。
如:
salt -E \'^SN2013.*\' test.ping
 
2)-L,--list,以主机id名列表的形式进行过滤,格式与python的列表相似,即不同主机id名称使用逗号分开。
# salt -L \'chosefine-cnetos,jenkins\' cmd.run \'free -h
 
 
3)-G,--grain,根据被空主机的grains(10.4节详解)信息进行匹配过滤,格式为\'<grain value>:<glob expression>\',例如,过滤内核为Linux的主机可以写成‘kernel:Linux’,如果同时需要正则表达式的支持,可切换成--grain-pcre参数来执行。示例:过去主机发型版本号为6.4的python版本号,命令:salt -G \'osrelease:6.4\' cmd.run \'python -V\'
 
4)-I , --pillar,根据被控主机的pillar(10.5节详细)信息进行匹配过滤,格式为“对象名称:对象值”,列如,过滤所有具备‘apache:httpd’ pillar值的主机。示例:探测具有"nginx:root:/data"信息的主机两桶性,命令 : salt -I \'nginx:root:/data\' test.ping
 
 
5)-N,--nodegroup,根据主控端master配置文件中的分株进行过滤,以逼着定义的组为例(主机信息支持正则表达式、grain、条件运算符等)
# cat /etc/salt/master
interface: 192.168.1.127
auto_accept: True
file_roots:
base:
- /srv/salt
nodegroups:
web1group: \'L@chosefine-cnetos,jenkins\'
web2group: \'L@jenkins,chosefine-cnetos\'
 
问题:我测试了很多次,分组控制对Ubuntu系统好像会有问题,无法正确响应
 
6) -C , --compound,根据条件运算符not、and、or去匹配不同规则的主机信息。示例:探测SN2013开头并且操作系统为CentOS的主机连通性
 
salt -C \'E@^SN2013.* and G@os:Centos\' test.ping
 
其中not语句不能作为第一个条件执行,不过可以通过以下方法来规避,示例:探测非SN2013开头的主机连通性,其命令为:salt -C \'* and not E@^SN2013.*\' test.ping
 
7)-S,--ipcidr,根据被控主机的IP地址或IP子网进行匹配,示例
salt -S 192.168.0.0/16 test.ping
salt -S 192.168.1.10 test.ping
 

分类:

技术点:

相关文章:

  • 2021-05-31
  • 2021-05-22
  • 2021-06-21
  • 2021-08-08
  • 2021-12-02
  • 2022-12-23
  • 2022-02-08
  • 2021-08-30
猜你喜欢
  • 2021-11-12
  • 2021-07-14
  • 2022-12-23
  • 2021-10-11
  • 2021-05-20
  • 2021-11-09
相关资源
相似解决方案