gpt4 book ai didi

python - SaltStack : adding grains to minion or to top file

转载 作者:太空狗 更新时间:2023-10-30 02:19:53 24 4
gpt4 key购买 nike

saltstack 文档中说添加:

{% set node_type = salt['grains.get']('node_type', '') %}

{% if node_type %}
'node_type:{{ self }}':
- match: grain
- {{ self }}
{% endif %}

/srv/salt/top.sls

将创建一个名为 node_type

的 grain

我在顶层文件中添加了下面的代码,我想知道为什么在我的 minion 中看不到 node_type:

myHost ~ # service salt-master restart; service salt-minion restart;
myHost ~ # salt '*' grains.get "node*"

最后一个命令没有返回任何内容。而且我认为这是正常的,因为我没有在/etc/salt/grains

中定义 node_type

这让我问一个问题:有什么区别:

  • top.sls 文件中声明 node_type

  • 简单地将它添加到grains文件(/etc/salt/grains)或minion文件(/etc/salt/minion)

最佳答案

您不能在顶层文件中创建颗粒。你能告诉我告诉你的文件吗? top 文件所做的只是定义哪些 Salt 状态(sls 文件)应该应用于哪些服务器。

你可以在你的top文件中使用grains来匹配。您没有在顶级文件中声明 Cereal 。

您可以创建一个 Salt 状态,它会为您的 minion 添加一个 grain,并在您的顶级文件中引用它。文档在这里:http://docs.saltstack.com/en/latest/ref/states/all/salt.states.grains.html#salt.states.grains.present

举个例子

$猫/srv/salt/top.sls

base:
'server01':
- rolegrain

$猫/srv/salt/rolegrain.sls

role:
grains.present:
- value: application_server

当运行一个高状态时,这会导致你的 Salt id 为 server01 的服务器有一个带有键 role 和值 application_server 的 grain >.

看起来像这样:

salt server01 state.highstate

salt server01 state.sls rolegrain

然后你会得到这个输出

salt server01 grains.item role

server01:
----------
role:
application_server

为了完整起见,这里有一些文档。

顶级文件:http://docs.saltstack.com/en/latest/ref/states/top.html

Cereal :http://docs.saltstack.com/en/latest/topics/targeting/grains.html

关于python - SaltStack : adding grains to minion or to top file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26903682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com