zoukankan      html  css  js  c++  java
  • 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]# 
    

      

  • 相关阅读:
    Python Revisited Day 13 (正则表达式)
    Python Revisited Day 06 (面向对象程序设计)
    Python Revisited (变量)
    Python Revisited Day 05(模块)
    Python Revisited Day 04 (控制结构与函数)
    Python Revisited Day 03 (组合数据类型)
    Numpy
    Python Revisited Day 01
    Python3使用openpyxl读写Excel文件
    Python3操作YAML文件
  • 原文地址:https://www.cnblogs.com/nmap/p/6220221.html
Copyright © 2011-2022 走看看