saltstack grain pillar
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了saltstack grain pillar相关的知识,希望对你有一定的参考价值。
Grain Pillar概念本质上都是key value 型的数据库。
Grains 是存储在minon上的数据,minion启动后就进行Grain计算,是一种静态数据。
Pillar 数据存储在master, 是动态数据,每个minion只能看到自已的pillar。
一个minion可以告诉master它的数据,而minion则需要从master索要pillar数据。
列出所有minion上的Grains项
salt ‘SN18‘ grains.ls
查询 minion上某一具体Grain的值
salt "SN18" grains.item ipv4
列出对应minion上所有Grain 的详细信息
salt ‘SN18‘ grains.items
+++++++++++++++++++++++++++++++
设置 Grains 数据
命令行方式
1)单个值设置
]# salt ‘SN28‘ grains.setval my_grain bar
SN28:
my_grain:
bar
查询
]# salt ‘SN28‘ grains.item my_grain
SN28:
my_grain:
bar
2)多个值设置
]# salt ‘SN28‘ grains.setvals "{‘key1‘:‘val1‘,‘key2‘:‘val2‘}"
SN28:
key1:
val1
key2:
val2
查询命令
]# salt ‘SN28‘ grains.item key1
SN28:
key1:
val1
3)列表结构设置
]# salt ‘SN28‘ grains.setval my_list ‘[‘one‘,‘two‘,‘three‘]‘
SN28:
my_list:
- one
- two
- three
查询命令
]# salt ‘SN28‘ grains.item my_list
SN28:
my_list:
- one
- two
- three
查看对应的minion的/etc/salt/grains 可以发现已经写入的Grains数据
]# salt ‘SN28‘ cmd.run "cat /etc/salt/grains"
SN28:
key1: val1
key2: val2
my_grain: bar
my_list:
- one
- two
- three
grains_module的方式设置
在master上建立模块对应的目录
]# mkdir -pv /srv/salt/_grains
mkdir: created directory ‘/srv/salt/_grains’
]# vim /srv/salt/_grains/my_grain_mod.py
import time
def now():
grains={}
grains[‘now‘]=time.time()
return grains
-----------------------同步有没有生效--
同步模块到minion
]# salt ‘SN28‘ saltutil.sync_all
重载一次模块
]# salt ‘SN28‘ sys.reload_moduls
查看新设置的Grians
]# salt ‘SN28‘ grains.item now
在minion端设置
登陆到一台minion
vim /etc/salt/minion.d/grains.conf
grains:
roles:
- webserver
-
memcach
deployment: datacenter4
cabinet: 13
cab_u: 14-15
重启salt-minion加载新的配置文件,在satl-master上查看
]# salt ‘SN27‘ grains.item roles
SN27:roles:
- webserver
- memcach
删除自定义Grains
通过 grains.setval 设置的Grain 可以直接通过下面命令删除
]# salt ‘SN28‘ grains.delval my_grain
SN28:
None
++++++++++++++++++++++++++++++++++++
列出minon上所有Pillar的详细信息
[[email protected] ~]# salt ‘SN28‘ pillar.items
以上是关于saltstack grain pillar的主要内容,如果未能解决你的问题,请参考以下文章