我的任务是在盐中创建自定义谷物(/srv/salt/_grains)。我必须访问这些自定义 Grain 的默认 Grain 数据来检查 ms_minion 序列号。不幸的是,我无法访问自定义谷物中的默认谷物数据。有人可以帮忙吗?
我在这里添加了示例代码。我在 Debian 11 中使用 salt 3004.2
#!/usr/bin/env python3
def gethwtype():
hw = __grains__["serialnumber"]
#return __grains__["os"]
grains = {}
grains["bm_tag"]= hw
return grains
是的
__grains__
不会由 Grains 加载器传递到函数中,因此不会存在。然而,有一个参数传递到称为grains的grain函数中。这是截至该点渲染的所有颗粒。
这应该仅用于在自定义颗粒中查找核心颗粒。因为您无法确定是否先加载了另一个自定义谷物。
def gethwtype(grains):
hw = grains["serialnumber"]
grains = {}
grains["bm_tag"]= hw
return grains
参见最后一行 https://docs.saltproject.io/en/latest/topics/grains/index.html#precedence