我是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']。获取该字典键值的正确格式是什么?
谢谢!
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'"]}} }}