salt 管理对象属性
salt grains组件
1
2
3Grains是SaltStack组件中非常重要的组件之一,它是SaltStack记录Minion的一些静态信息的组件,例如:CPU,内存,磁盘,网络信息等.
Minions的Grains信息是Minions启动的时候采集汇报给Master的,在实际应用环境中我们需要根据自己的业务需求去自定义一些Grains.
Grains存储的是静态信息,静态信息,静态信息!!!查看minion所有grains信息
1
salt minion grains.items
自定义grains方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48方法一: 通过Minion配置文件定义
1.修改配置文件/etc/salt/minion.d/grains:
grains:
roles:
- webserver
- memcache
deployment: datacenter4
cabinet: 13
cab_u: 14-15
2.重启salt-minion
3.salt-master验证
salt 'minion' grains.item roles
方法二: 通过Grains相关模块定义
1.定义grains
salt 'minion' grains.append hosttype 'online'
salt 'minion' grains.item hosttype
或:
salt 'minion' grains.setvals "{'idc':'Z1','city':'BJ'}"
salt 'minion' grains.item idc
方法三: 通过Python脚本定义
1.查看file_roots
[root@salt-master ~]# cat /etc/salt/master
file_roots:
base:
- /mnt/data/salt.repo/salt/base
2.创建_grains目录
[root@salt-master ~]# mkdir /mnt/data/salt.repo/salt/base/_grains
3.创建python脚本
[root@salt-master ~]# cat /mnt/data/salt.repo/salt/base/_grains/get_time.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from datetime import datetime
def get_server_time():
grains = {}
grains['server_time'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
return grains
4.使用sync_grains命令同步脚本到minion主机
[root@salt-master ~]# salt 'salt-minion-187' saltutil.sync_grains
salt-minion-187:
- grains.get_time
5.通过grains.item获取相关信息
[root@salt-master ~]# salt 'salt-minion-187' grains.item server_time
salt-minion-187:
----------
server_time:
2017-11-14 17:05:33grains优先级
1
2
3
4
5
6
7
8
9
10grains配置优先级:
minion端自定义grains配置(/etc/salt/minion.d/grains.conf或/etc/salt/minion) >
master端自定义grains脚本(minion端/var/cache/salt/minion/extmods/grains目录下) >
master端Grains模块定义(minion端/etc/salt/grains文件)
注意: 当同步自定义grains脚本时,最好如下操作
[root@salt-master ~]# mv /mnt/data/salt.repo/salt/base/{_grains,_grains.bak}
[root@salt-master ~]# salt 'salt-minion-187' saltutil.sync_grains
[root@salt-master ~]# mv /mnt/data/salt.repo/salt/base/{_grains.bak,_grains}
[root@salt-master base]# salt 'salt-minion-187' saltutil.sync_grains查看相关grains命令和帮助
1
2salt minion sys.list_functions grains
salt minion sys.doc grains