Erlo

Saltstack_使用指南04_数据系统-Grains

2019-03-29 21:00:17 发布   639 浏览  
页面报错/反馈
收藏 点赞

 

1. 主机规划

 

Grains文档

https://docs.saltstack.com/en/latest/topics/grains/index.html    

 

注意事项

修改了master或者minion的配置文件,那么必须重启对应的服务。

 

 

2. Grains基本信息

Saltstack 数据系统
    Grains (谷粒)
    Pillar  (柱子)

Grains:静态数据    当Minion启动的时候收集的Minion本地的相关信息
                    如:操作系统版本,内核版本,CPU,内存,硬盘,设备型号,序列号
    1、信息查询  【资产管理】★★★★★
    2、用于目标选择    salt -G 'os:CentOS' test.ping    ★★★★★
    3、配置管理中使用

刷新grains 【这样修改grains信息不用重启salt-minion 也能刷新】
不然需要重启salt-minion
salt '*' saltutil.sync_grains

开发一个Grains:
    Python:写一个Python脚本,返回一个字典就可以了。

 

可以通过

salt 'salt01' saltutil.sync_grains   【推荐】
或salt 'salt01' saltutil.sync_all   【范围太广,不推荐使用】
或salt 'salt01' state.highstate     【执行高级状态时同步,不建议使用】
或salt 'salt01' saltutil.refresh_modules   【只刷新客户端,服务端向客户端分发的不刷新,比如修改了grains的py脚本时,不会推送到minion端  不建议使用】
或salt 'salt01' saltutil.refresh_grains    【只刷新客户端,服务端向客户端分发的不刷新,比如修改了grains的py脚本时,不会推送到minion端  不建议使用】

将配置同步到minion端
如果做了更改也可以使用
salt 'salt01' sys.reload_modules

 

 

3. Grains优先级信息

经验证优先级如下:
1、    salt系统自带信息  【优先级最低】
2、    自编写Python脚本  备注:在指定目录下存放py脚本
3、    /etc/salt/grains  备注:该文件不存在,需要自己创建
4、    /etc/salt/minion  【优先级最高】

       推荐使用 自编写py脚本定义,这样自定义的grains只需要在master端维护即可,减少后期维护成本。

      下文内容就是根据优先级写的。

 

 

4. Salt自带Grains 信息

4.1. grains条目项信息

1 [root@salt100 salt]# salt 'salt01' grains.ls  # 查看salt01机器有哪些grains条目项信息
2 ………………

 

4.2. grains全部信息

  1 [root@salt100 salt]# salt 'salt01' grains.items  # 查看salt01机器有哪些grains信息 
  2 salt01:
  3     ----------
  4     SSDs:
  5     biosreleasedate:
  6         05/19/2017
  7     biosversion:
  8         6.00
  9     cpu_flags:
 10         - fpu
 11         - vme
 12         - de
 13         - pse
 14         - tsc
 15         - msr
 16         - pae
 17         - mce
 18         - cx8
 19         - apic
 20         - sep
 21         - mtrr
 22         - pge
 23         - mca
 24         - cmov
 25         - pat
 26         - pse36
 27         - clflush
 28         - mmx
 29         - fxsr
 30         - sse
 31         - sse2
 32         - ss
 33         - ht
 34         - syscall
 35         - nx
 36         - pdpe1gb
 37         - rdtscp
 38         - lm
 39         - constant_tsc
 40         - arch_perfmon
 41         - nopl
 42         - xtopology
 43         - tsc_reliable
 44         - nonstop_tsc
 45         - eagerfpu
 46         - pni
 47         - pclmulqdq
 48         - ssse3
 49         - fma
 50         - cx16
 51         - pcid
 52         - sse4_1
 53         - sse4_2
 54         - x2apic
 55         - movbe
 56         - popcnt
 57         - tsc_deadline_timer
 58         - aes
 59         - xsave
 60         - avx
 61         - f16c
 62         - rdrand
 63         - hypervisor
 64         - lahf_lm
 65         - abm
 66         - 3dnowprefetch
 67         - fsgsbase
 68         - tsc_adjust
 69         - bmi1
 70         - avx2
 71         - smep
 72         - bmi2
 73         - invpcid
 74         - mpx
 75         - rdseed
 76         - adx
 77         - smap
 78         - clflushopt
 79         - xsaveopt
 80         - xsavec
 81         - arat
 82     cpu_model:
 83         Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
 84     cpuarch:
 85         x86_64
 86     disks:
 87         - sda
 88         - sr0
 89     dns:
 90         ----------
 91         domain:
 92         ip4_nameservers:
 93             - 10.0.0.2
 94             - 223.5.5.5
 95         ip6_nameservers:
 96         nameservers:
 97             - 10.0.0.2
 98             - 223.5.5.5
 99         options:
100         search:
101         sortlist:
102     domain:
103     fqdn:
104         salt01
105     fqdn_ip4:
106         - 172.16.1.11
107     fqdn_ip6:
108         - fe80::20c:29ff:fe95:1b84
109         - fe80::20c:29ff:fe95:1b7a
110     gid:
111         0
112     gpus:
113         |_
114           ----------
115           model:
116               SVGA II Adapter
117           vendor:
118               unknown
119     groupname:
120         root
121     host:
122         salt01
123     hwaddr_interfaces:
124         ----------
125         eth0:
126             00:0c:29:95:1b:7a
127         eth1:
128             00:0c:29:95:1b:84
129         lo:
130             00:00:00:00:00:00
131     id:
132         salt01
133     init:
134         systemd
135     ip4_gw:
136         10.0.0.2
137     ip4_interfaces:
138         ----------
139         eth0:
140             - 172.16.1.11
141         eth1:
142             - 10.0.0.11
143         lo:
144             - 127.0.0.1
145     ip6_gw:
146         False
147     ip6_interfaces:
148         ----------
149         eth0:
150             - fe80::20c:29ff:fe95:1b7a
151         eth1:
152             - fe80::20c:29ff:fe95:1b84
153         lo:
154             - ::1
155     ip_gw:
156         True
157     ip_interfaces:
158         ----------
159         eth0:
160             - 172.16.1.11
161             - fe80::20c:29ff:fe95:1b7a
162         eth1:
163             - 10.0.0.11
164             - fe80::20c:29ff:fe95:1b84
165         lo:
166             - 127.0.0.1
167             - ::1
168     ipv4:
169         - 10.0.0.11
170         - 127.0.0.1
171         - 172.16.1.11
172     ipv6:
173         - ::1
174         - fe80::20c:29ff:fe95:1b7a
175         - fe80::20c:29ff:fe95:1b84
176     kernel:
177         Linux
178     kernelrelease:
179         3.10.0-862.el7.x86_64
180     kernelversion:
181         #1 SMP Fri Apr 20 16:44:24 UTC 2018
182     locale_info:
183         ----------
184         defaultencoding:
185             UTF-8
186         defaultlanguage:
187             en_US
188         detectedencoding:
189             UTF-8
190     localhost:
191         salt01
192     lsb_distrib_codename:
193         CentOS Linux 7 (Core)
194     lsb_distrib_id:
195         CentOS Linux
196     machine_id:
197         5ae5f27014ee438780bf37ae68889471
198     manufacturer:
199         VMware, Inc.
200     master:
201         salt100
202     mdadm:
203     mem_total:
204         1821
205     nodename:
206         salt01
207     num_cpus:
208         2
209     num_gpus:
210         1
211     os:
212         CentOS
213     os_family:
214         RedHat
215     osarch:
216         x86_64
217     oscodename:
218         CentOS Linux 7 (Core)
219     osfinger:
220         CentOS Linux-7
221     osfullname:
222         CentOS Linux
223     osmajorrelease:
224         7
225     osrelease:
226         7.5.1804
227     osrelease_info:
228         - 7
229         - 5
230         - 1804
231     path:
232         /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
233     pid:
234         1598
235     productname:
236         VMware Virtual Platform
237     ps:
238         ps -efHww
239     pythonexecutable:
240         /usr/bin/python
241     pythonpath:
242         - /usr/bin
243         - /usr/lib64/python27.zip
244         - /usr/lib64/python2.7
245         - /usr/lib64/python2.7/plat-linux2
246         - /usr/lib64/python2.7/lib-tk
247         - /usr/lib64/python2.7/lib-old
248         - /usr/lib64/python2.7/lib-dynload
249         - /usr/lib64/python2.7/site-packages
250         - /usr/lib64/python2.7/site-packages/gtk-2.0
251         - /usr/lib/python2.7/site-packages
252     pythonversion:
253         - 2
254         - 7
255         - 5
256         - final
257         - 0
258     saltpath:
259         /usr/lib/python2.7/site-packages/salt
260     saltversion:
261         2018.3.3
262     saltversioninfo:
263         - 2018
264         - 3
265         - 3
266         - 0
267     selinux:
268         ----------
269         enabled:
270             False
271         enforced:
272             Disabled
273     serialnumber:
274         VMware-56 4d 32 86 98 5c a8 3c-50 92 82 be 30 95 1b 7a
275     server_id:
276         2097601471
277     shell:
278         /bin/sh
279     swap_total:
280         2047
281     systemd:
282         ----------
283         features:
284             +PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN
285         version:
286             219
287     uid:
288         0
289     username:
290         root
291     uuid:
292         86324d56-5c98-3ca8-5092-82be30951b7a
293     virtual:
294         VMware
295     zfs_feature_flags:
296         False
297     zfs_support:
298         False
299     zmqversion:
300         4.1.4

 

4.3. 查询grains指定信息

1 [root@salt100 ~]# salt 'salt01' grains.item roles  # 没有该项信息,因此只显示key 不显示value
2 salt01:
3     ----------
4     roles:
5 [root@salt100 ~]# salt 'salt01' grains.item os
6 salt01:
7     ----------
8     os:
9         CentOS

 

5. 自写grains的py脚本

       该脚本在salt master端,然后推送到minion端。

 

5.1. master端编写py脚本

 1 [root@salt100 salt]# pwd
 2 /srv/salt
 3 [root@salt100 salt]# mkdir _grains  # salt指定的位置
 4 [root@salt100 salt]# cd _grains/
 5 [root@salt100 _grains]# vim my_grains.py 
 6 #!/usr/bin/env python
 7 # -*- coding:utf-8 -*-
 8 
 9 def grains_define():
10     # initialize a grains dictionary
11     grains = {}
12     # 填充信息
13 grains['roles'] = ["webserver01","memcache01"],
14 grains['os'] = 'redhat01'
15 
16     # 返回这个字典
17     return grains

 

5.2. grains刷新并查看指定信息

在master端执行,并查看grains信息

 1 [root@salt100 ~]# salt 'salt01' saltutil.sync_grains  # 会推送py脚本到minion端,并刷新grains信息
 2 salt01:
 3     - grains.my_grains
 4 [root@salt100 ~]# salt 'salt01' grains.item roles
 5 salt01:
 6     ----------
 7     roles:
 8         |_
 9           - webserver01
10           - memcache01
11 [root@salt100 ~]# salt 'salt01' grains.item os
12 salt01:
13     ----------
14     os:
15         redhat01

 

5.3. 在minion端查看推送过来的文件位置

 1 [root@salt01 minion]# pwd
 2 /var/cache/salt/minion
 3 [root@salt01 minion]# tree
 4 .
 5 ├── accumulator
 6 ├── extmods
 7 │   └── grains  # 在这个目录下
 8 │       ├── my_grains.py
 9 │       └── my_grains.pyc
10 ├── files
11 │   └── base
12 │       ├── _grains
13 │       │   └── my_grains.py
14 │       ├── top.sls
15 │       └── web
16 │           └── apache.sls
17 ├── highstate.cache.p
18 ├── module_refresh
19 ├── pkg_refresh
20 ├── proc
21 └── sls.p
22 
登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认