salt 之 grains(二)
前面写了salt的grains在minion端和master端的自定义配置。
通过Grains模块定义Grains
通过 salt '*' sys.doc grains 来查看相关的命令和使用方法
salt 'cong-55' sys.doc grains.append
通过salt 'minion_id' sys.doc MODULE.FUNCION 来查看对应模板的函数的使用方法
添加grains信息
grains.append 将grains的key和value添加到grains配置文件中以列表形式保存,类型 list
salt ‘minion_id' grains.append KEY VALUE
[root@cong-33 _grains]# salt 'cong-55' grains.append OSType Linux ##key OSType,value Linux cong-55: ---------- OSType: - Linux
[root@cong-33 _grains]# salt 'cong-55' grains.append OSType Linu2
cong-55:
----------
OSType:
- Linux
- Linu2
[root@cong-33 _grains]# salt 'cong-55' grains.get OSType
cong-55:
- Linux
- Linu2
[root@cong-33 _grains]#
grains经过上面的命令已经把grains信息添加到了minion端,还写进来minion端的一个配置文件了
[root@cong-55 ~]# cat /etc/salt/grains ##已经把grains的信息写入这个文件 OSType: - Linux
- Linux2 [root@cong-55 ~]#
grains.setvals 批量添加grains信息
salt '*' grains.setvals "{'key1': 'val1', 'key2': 'val2'}"
[root@cong-33 _grains]# salt 'cong-55' grains.setvals "{'IDC':'abc','CITY':'GZ'}" cong-55: ---------- CITY: GZ IDC: abc [root@cong-33 _grains]# salt 'cong-55' grains.get IDC cong-55: abc [root@cong-33 _grains]# salt 'cong-55' grains.get CITY cong-55: GZ [root@cong-33 _grains]#
查看minion端的配置文件
[root@cong-55 ~]# cat /etc/salt/grains CITY: GZ IDC: abc OSType: - Linux
- Linux2 [root@cong-55 ~]#
grains.append 是将value添加到key的列表中,如果key不存在将创建
grains.setvals 添加多个grains的key和value到grains配置文件中,类型是key-value
删除grains信息
grains.delkey 删除grains的key和value
salt '*' grains.delkey key
[root@cong-33 _grains]# salt 'cong-55' grains.delkey IDC cong-55: None [root@cong-33 _grains]# salt 'cong-55' grains.get IDC cong-55: [root@cong-33 _grains]#
查看minion端信息
[root@cong-55 ~]# cat /etc/salt/grains CITY: GZ OSType: - Linux [root@cong-55 ~]#
grains.delval 删除grains的value
salt '*' grains.delval key
[root@cong-33 _grains]# salt 'cong-55' grains.delval CITY cong-55: None [root@cong-33 _grains]# salt 'cong-55' grains.get CITY cong-55: None [root@cong-33 _grains]#
查看minion端的配置
[root@cong-55 ~]# cat /etc/salt/grains CITY: null OSType: - Linux [root@cong-55 ~]#
grains.delkey 会把key和value一起删掉,
grains.delval只是把value删掉,key还在,key的值变为null
grains.remove 从grains配置文件中的列表中删除一个值
删除grains的key列表中的一个value值,如果grains的key和value不是列表不能删除
salt '*' grains.remove key val
[root@cong-33 _grains]# salt 'cong-55' grains.get OSType cong-55: - Linux - Linu2 [root@cong-33 _grains]# salt 'cong-55' grains.remove OSType Linux cong-55: ---------- OSType: - Linu2 [root@cong-33 _grains]# salt 'cong-55' grains.item OSType cong-55: ---------- OSType: - Linu2 [root@cong-33 _grains]#
grains的相关函数:
[root@cong-33 _grains]# salt 'cong-55' sys.list_functions grains cong-55: - grains.append - grains.delkey - grains.delval - grains.equals - grains.fetch - grains.filter_by - grains.get - grains.get_or_set_hash - grains.has_value - grains.item - grains.items - grains.ls - grains.remove - grains.set - grains.setval - grains.setvals