【问题标题】:Unable to reference Jinja 2 variable inside a function无法在函数内引用 Jinja 2 变量
【发布时间】: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


【解决方案1】:

很简单

{% set ip_addr = salt['network.ip_addrs']( device_type )[0] %}

没有任何超自然的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-23
    • 2021-11-16
    • 2014-07-22
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多