设为首页 收藏本站
查看: 1504|回复: 0

[经验分享] saltstack实战2

[复制链接]

尚未签到

发表于 2018-1-3 20:38:09 | 显示全部楼层 |阅读模式
  target 就是目标的意思,你要在那台机器上执行此命令或此状态。或者说将此动作或者状态文件推送给谁来执行,让那个minion执行可以进行一些匹配
  对于拥有大量机器的环境,如果单独一台台的执行指定minion去执行,反而违saltstack设计的初衷。
  它有如下参数可以使用
  
  1、
  globbing 默认
  

[iyunv@master scripts]# salt 'minion01'  test.ping  
minion01:
  True
  
[iyunv@master scripts]#
  

  

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

[iyunv@master scripts]# salt -L 'minion01,minion02'  test.ping  
minion02:
  True
  
minion01:
  True
  
[iyunv@master scripts]#
  

  

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

[iyunv@master scripts]# salt -E '.*01' test.ping  
minion01:
  True
  
[iyunv@master scripts]# salt -E 'minion*' test.ping
  
minion02:
  True
  
minion01:
  True
  
[iyunv@master scripts]# salt -E 'm.*02' test.ping
  
minion02:
  True
  
[iyunv@master scripts]#
  

  

  4、
  -G,--grain,根据被控主机的grains信息进行匹配过滤,格式为:<grain value>:<grain expression>  
  grains是存放在minion上的主机信息,包括系统信息和硬件信息等,我们能看到有很多项,使用grains.items能看到
  

[iyunv@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

  ->  - 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
  
[iyunv@master scripts]#
  

  

  使用方式如下
  

[iyunv@master scripts]# salt 'minion01' grains.get os  
minion01:
  CentOS

  
[iyunv@master scripts]# salt 'minion01' grains.get>  
minion01:
  minion01
  
[iyunv@master scripts]# salt -G 'os:CentOS'  test.ping
  
minion01:
  True
  
minion02:
  True
  
[iyunv@master scripts]# salt -G 'id:minion01'  test.ping
  
minion01:
  True
  
[iyunv@master scripts]#
  

  

  5、
  -S根据IP或者子网匹配
  

[iyunv@master scripts]# salt -S '10.0.1.172' test.ping  
minion01:
  True
  
[iyunv@master scripts]# salt -S '10.0.1.173' test.ping
  
minion02:
  True
  
[iyunv@master scripts]#
  

  

[iyunv@master master.d]# salt -S '10.0.1.0/24' test.ping  
minion02:
  True
  
minion01:
  True
  
[iyunv@master master.d]#
  

  6、
  -C,组合匹配
  根据条件运算符not、and、or去匹配不同规则的主机信息
  

[iyunv@master scripts]# salt -C 'E@m.*01 or G@id:minion02' test.ping  
minion01:
  True
  
minion02:
  True
  
[iyunv@master scripts]# salt -C 'E@m.*02 or G@id:minion02' test.ping
  
minion02:
  True
  
[iyunv@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成员
  

[iyunv@master salt]# cd /etc/salt/  
[iyunv@master salt]# ls
  
master  pki
  
[iyunv@master salt]# mkdir master.d
  
[iyunv@master salt]# ls -F
  
master  master.d/  pki/
  
[iyunv@master salt]# cd master.d/
  
[iyunv@master master.d]# ls
  
[iyunv@master master.d]# vim groups.conf
  
[iyunv@master master.d]# cat groups.conf
  
nodegroups:
  lamp: L@minion01,minion02
  lnmp: minion02
  
[iyunv@master master.d]#
  

  

  

[iyunv@master master.d]# salt -N 'lamp' test.ping  
minion01:
  True
  
minion02:
  True
  
[iyunv@master master.d]# salt -N 'lnmp' test.ping
  
minion02:
  True
  
[iyunv@master master.d]#
  

  

  8、  
  -I,--pillar,根据被控主机的pillar信息进行匹配
  这里只介绍怎么使用 -I 进行pillar数据的匹配。具体pillar怎么配置的请查看pillar的博文
  

[iyunv@master pillar]# salt '*'  pillar.get apache  
minion01:
  
minion02:
  httpd
  
[iyunv@master pillar]# salt -I 'apache:httpd'  test.ping
  
minion02:
  True
  
[iyunv@master pillar]#
  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431313-1-1.html 上篇帖子: Saltstack生产案例之Haproxy安装 下篇帖子: saltstack自动化运维系列②之saltstack的数据系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表