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
原文地址:https://www.cnblogs.com/LYCong/p/7873871.html