无法访问自定义谷物中的默认谷物数据

问题描述 投票:0回答:1

我的任务是在盐中创建自定义谷物(/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
python-3.x debian salt-stack
1个回答
0
投票

是的

__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

© www.soinside.com 2019 - 2024. All rights reserved.