在按支柱过滤的Saltstack Jinja模板中获取minion ip
Get minion ip in Saltstack Jinja template filtered by pillar
我目前正忙于创建一个自动网络数据临时集群,这意味着我有一个主网络数据节点,从节点连接到该节点。
我找到了一个类似的 ,但我没有使用谷物,而是使用了柱子。
我正在尝试获取 Netdata 主 IP,并通过模板将其分发给 minions 运行 Netdata。但这也可以应用于其他主从配置(例如 postgres、elasticsearch 等)
我正在通过支柱分配角色。
所以我的支柱文件看起来像:
server:
roles:
- netdata-master
- grafana
还有我的神社模板:
{% set netdatamaster = ..... %}
[stream]
# stream metrics to another netdata
enabled = yes
# the IP and PORT of the master
destination = {% netdatamaster %}:19999
现在我希望 var netdatamaster
包含 Netdata 主机的 ipv4 地址。我只是想不出办法来做到这一点。
你可以使用盐矿。
首先将 mine_function 添加到您的 netdata-master 服务器。这可以在 pillar 或 minion 配置文件中配置。
mine_functions:
eth0_ip_addrs:
mine_function: network.ip_addrs
interface: eth0
上面的 mine_function 使其他 minions 可以为您的 netdata-master 服务器请求 network.ip_addrs
的值。
您可以通过不同的方式请求此数据:
来自 cli:
salt 'other_minion_id' mine.get 'netstat-master_id' eth0_ip_addrs
在您的状态文件中:
{{ salt['mine.get']('netstat-master_id', 'eth0_ip_addrs') }}
在您的情况下,您可以将其放在 Jinja 模板文件的顶部。
{% set netdatamaster = salt['mine.get']('netstat-master_id', 'eth0_ip_addrs') %}
我目前正忙于创建一个自动网络数据临时集群,这意味着我有一个主网络数据节点,从节点连接到该节点。
我找到了一个类似的
我正在尝试获取 Netdata 主 IP,并通过模板将其分发给 minions 运行 Netdata。但这也可以应用于其他主从配置(例如 postgres、elasticsearch 等)
我正在通过支柱分配角色。 所以我的支柱文件看起来像:
server:
roles:
- netdata-master
- grafana
还有我的神社模板:
{% set netdatamaster = ..... %}
[stream]
# stream metrics to another netdata
enabled = yes
# the IP and PORT of the master
destination = {% netdatamaster %}:19999
现在我希望 var netdatamaster
包含 Netdata 主机的 ipv4 地址。我只是想不出办法来做到这一点。
你可以使用盐矿。
首先将 mine_function 添加到您的 netdata-master 服务器。这可以在 pillar 或 minion 配置文件中配置。
mine_functions:
eth0_ip_addrs:
mine_function: network.ip_addrs
interface: eth0
上面的 mine_function 使其他 minions 可以为您的 netdata-master 服务器请求 network.ip_addrs
的值。
您可以通过不同的方式请求此数据:
来自 cli:
salt 'other_minion_id' mine.get 'netstat-master_id' eth0_ip_addrs
在您的状态文件中:
{{ salt['mine.get']('netstat-master_id', 'eth0_ip_addrs') }}
在您的情况下,您可以将其放在 Jinja 模板文件的顶部。
{% set netdatamaster = salt['mine.get']('netstat-master_id', 'eth0_ip_addrs') %}