Ansible中的模板中的模板?

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

我是Ansible的新手,我很难弄清楚如何使表达式起作用。我尝试运行一个引用字典变量的命令任务,其中我需要引用的键也是动态的。相关代码(用于格式化的多行代码):

   tasks:
      - name: set volume
        command: az webapp config storage-account add --share-name shareName2 
                --access-key {{ kvsecrets['connectionstring-{{resources_name}}-key2'] }}

因此kvsecrets是上一个任务注册的字典,resources_name是在剧本中进一步声明的变量。上面的语法不起作用,因为它在不进行内部转换的情况下输出了kvsecrets ['connectionstring-{{resources_name}}-key2']。获取该字典键值的正确格式是什么?

谢谢!

azure ansible azure-web-app-service
1个回答
0
投票

Ansible是python模块的包装,并使用jinja2进行模板化。此问题可以通过string concatenation

解决。

下面是一个例子:

注意:请注意双引号和单引号

tasks:
  - name: set volume
    command: az webapp config storage-account add --share-name shareName2 
             --access-key   {{ kvsecrets["'connectionstring-'+resources_name+'-key2'"]}} }}
© www.soinside.com 2019 - 2024. All rights reserved.