06-saltstack 之grains

granins是静态的,每次启动是收集到的,用于收集客户端信息的,重启minion后信息才会变化

作用:1.收集系统底层信息,2.远程执行匹配minion,3.top里匹配minion

1. 查看可用grains.ls

[root@salt-master ~]# salt '*' grains.ls
salt-minion02:
    - SSDs
    - biosreleasedate
    - biosversion
    - cpu_flags
    - cpu_model
    - cpuarch

 2.查看grains.items,所有值

[root@salt-master ~]# salt '*' grains.items
salt-minion02:
    ----------
    SSDs:
    biosreleasedate:
        05/20/2014
    biosversion:
        6.00
    cpu_flags:
        - fpu
        - vme
        - de
        - pse
        - tsc
        - msr
        - pae
        - mce
        - cx8
        - apic
......

 3.grains操作

[root@salt-master ~]#  salt 'salt-minion01' grains.item fqdn     # 显示fqdn值
salt-minion01:
    ----------
    fqdn:
        salt-minion01

[root@salt-master ~]#  salt 'salt-minion01' grains.get fqdn      # 显示fqdn值
    salt-minion01

[root@salt-master ~]#  salt 'salt-minion01' grains.get ip_interfaces:eth0  # 显示IP地址
salt-minion01:
    - 192.168.2.104
    - fe80::20c:29ff:fe01:eca5

root@salt-master ~]# salt -G os:CentOS cmd.run 'w'              # 在centos机器上执行
salt-minion01:
     07:39:10 up  4:25,  1 user,  load average: 0.00, 0.00, 0.00
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    192.168.2.100    07:25   13:51   0.04s  0.04s -bash
salt-master:
     07:28:05 up  4:25,  1 user,  load average: 0.00, 0.00, 0.00
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    192.168.2.100    07:14    1.00s  0.94s  0.73s /usr/bin/python
salt-minion02:
     07:58:42 up  4:21,  2 users,  load average: 0.00, 0.00, 0.00
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    root     tty1     -                03:37    4:17m  0.18s  0.18s -bash
    root     pts/0    192.168.2.100    07:44   13:50   0.03s  0.03s -bash

 4-1.minion端自定义grains

[root@salt-minion01 ~]# vim /etc/salt/minion   # 编辑minion文件,注释打开120---123
117 # Custom static grains for this minion can be specified here and used in SLS
118 # files just like all other grains. This example sets 4 custom grains, with
119 # the 'roles' grain having two values that can be matched against.
120 grains:
121   roles:
122     - webserver
123     - memcache
124 #  deployment: datacenter4
125 #  cabinet: 13
126 #  cab_u: 14-15

[root@salt-minion01 ~]# /etc/init.d/salt-minion restart               
Stopping salt-minion:root:salt-minion01 daemon: OK
Starting salt-minion:root:salt-minion01 daemon: OK

# salt-master进行grains操作
[root@salt-master ~]# salt -G 'roles:memcache' cmd.run 'echo hello word'   
salt-minion01:
    hello word
[root@salt-master ~]# salt -G 'roles:webserver' cmd.run 'echo hello word'            
salt-minion01:
    hello word

 4-2.minion端自定义grains

[root@salt-minion01 ~]# vim /etc/salt/grains              # 建立grains文件,默认路径
web: nginx

[root@salt-minion01 ~]# /etc/init.d/salt-minion restart    # 重启
Stopping salt-minion:root:salt-minion01 daemon: OK 
Starting salt-minion:root:salt-minion01 daemon: OK


[root@salt-master ~]# salt -G 'web:nginx' cmd.run 'echo hello word'        # maser执行          
salt-minion01:
    hello word


[root@salt-master ~]# salt -G 'web:nginx' cmd.run 'w'         # maser执行         
salt-minion01:
     08:03:08 up  4:49,  1 user,  load average: 0.06, 0.03, 0.01
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    192.168.2.100    07:25    1:30   0.13s  0.13s -bash

 5.grains的top.sls应用

[root@salt-master ~]# vim /etc/salt/master    # 注释取消,定义路径
file_roots:
  base:
    - /srv/salt


[root@salt-master ~]# vim /srv/salt/top.sls   # 编写top.sls,入口文件
base:
  'web:nginx':
    - match: grain
    - apache


[root@salt-master ~]# salt '*' state.highstate  # 执行命令,             
salt-minion02:                 
----------
          ID: states
    Function: no.None
      Result: False
     Comment: No Top file or external nodes data matches found.   # 未匹配上,不执行
     Changes:   

Summary for salt-minion02
------------
Succeeded: 0
Failed:    1
------------
Total states run:     1
Total run time:   0.000 ms
salt-master:             
----------
          ID: states
    Function: no.None
      Result: False
     Comment: No Top file or external nodes data matches found.  # 未匹配上,不执行
     Changes:   

Summary for salt-master
------------
Succeeded: 0
Failed:    1
------------
Total states run:     1
Total run time:   0.000 ms
salt-minion01:
----------
          ID: apache-install
    Function: pkg.installed
        Name: httpd
      Result: True
     Comment: Package httpd is already installed     # 匹配上,执行
     Started: 08:38:12.103078
    Duration: 713.789 ms
     Changes:   
----------
          ID: apache-install
    Function: pkg.installed
        Name: httpd-devel
      Result: True
     Comment: Package httpd-devel is already installed
     Started: 08:38:12.817233
    Duration: 0.892 ms
     Changes:   
----------
          ID: apache-service
    Function: service.running
        Name: httpd
      Result: True
     Comment: The service httpd is already running
     Started: 08:38:12.819143
    Duration: 39.472 ms
     Changes:   

Summary for salt-minion01
------------
Succeeded: 3
Failed:    0
------------
Total states run:     3
Total run time: 754.153 ms
ERROR: Minions returned with non-zero exit code

 

posted @ 2017-04-18 17:29  sunmmi  阅读(248)  评论(0)    收藏  举报