首页 > 解决方案 > 使用另一个 dict var 创建 var

问题描述

进入角色的“/vars/main.yml”文件,我试图创建一个具有另一个dict var值的变量,如下所示:

livrables_list_files:
  - file: "myfile.zip"
    dest: "/tmp/mynewfile.zip"

zip_app: "{{ livrables_list_files.dest }}"

但是我的剧本结果返回The error was: 'list object' has no attribute 'dest'

我想要一个像这样的变量:

zip_app: "/tmp/mynewfile.zip"

是否可以访问此 var ?在我的情况下,即使使用 json 语法也可以。

谢谢。

标签: ansible

解决方案


问:“错误是:'list object' 没有属性 'dest。可以访问这个 var 吗?”

答:是的。这是可能的。问题是第一项前面的破折号使变量livrables_list_files成为list。要引用dest列表中第一项的属性,需要索引。例如

zip_app: "{{ livrables_list_files.0.dest }}"

如果您删除破折号

livrables_list_files:
  file: "myfile.zip"
  dest: "/tmp/mynewfile.zip"

可以引用字典dest的属性 livrables_list_files

zip_app: "{{ livrables_list_files.dest }}"

推荐阅读