【发布时间】:2018-04-13 09:41:10
【问题描述】:
所以我对函数中的 jinja 变量引用有一点问题。
我尝试了几种不同的方法来完成这项工作,但都没有产生任何结果。我希望你们中的一些人可以在这里帮助我!
{% set device_type = salt['grains.get']('device','') %}
{% set ip_addr = salt['network.ip_addrs'](' +device_type+ ')[0] %}
我想在 ip_addr 的 salt 函数中包含变量 device_type。
我已经尝试了以下方法,但都没有任何结果:
{% set ip_addr = salt['network.ip_addrs'](\' +device_type+ \')[0] %}
{% set ip_addr = salt['network.ip_addrs'](' ~ device_type ~ ')[0] %}
{% set ip_addr = salt['network.ip_addrs']( {{ device_type }})[0] %}
{% set ip_addr = salt['network.ip_addrs'](' {{ device_type }} ')[0] %}
有人知道我可以如何替换该函数中的 device_type 吗?
【问题讨论】:
-
你能在这里解释更多吗,比如用普通的python代码明确说明你的目的是什么,了解你想要哪个变量到哪个函数以及这些
['network.ip_addrs']和[0]是什么?跨度> -
获取设备列表中的第一个IP地址。在这种情况下是机器地址,然后在配置文件中分配。
-
问题是我无法在 set 函数中引用 device_type 参数
-
so
salt['network.ip_addrs']是一个函数,你想将device_type作为参数传递? -
是的。我之前遇到过一些奇怪的错误,但下面的解决方案奏效了。
标签: jinja2 salt-stack