Ansible:引用变量名称中的变量内容

Ansible:引用变量名称中的变量内容,ansible,Ansible,我试图从变量名访问变量的内容。我使用ansible vault创建了一些密码,并尝试创建数据库用户,如下所示: postgresql_user: name: "{{ item }}" db: "{{ item }}" login_user: postgres_admin login_password: '{{postgres_admin}}' login_host: localhost login_port:

我试图从变量名访问变量的内容。我使用ansible vault创建了一些密码,并尝试创建数据库用户,如下所示:

postgresql_user:
    name: "{{ item }}"
    db: "{{ item }}"
    login_user: postgres_admin
    login_password: '{{postgres_admin}}'
    login_host: localhost
    login_port: 5433
    password: '{{ "{{item}}" }}'
loop:
   - artifactory
   - bitbucket
   - confluence
   - crowd
   - jira
在本例中,我有一个数据库用户,它是循环中的变量。该用户的密码存储在该用户的(vault)变量名中。在password:字段中,就像我试图进行双重引用一样。它不起作用

我尝试了更多的方法,但这是我第一次使用Ansible,我不想走错路。(我没有包括对vault的引用,但它位于文件的顶部,并且已使用更简单的任务对其进行了测试)

谢谢

使用查找插件变量。比如说

password:“{{lookup('vars',item)}”
随着系统的引入。请参阅命令行中的文档

shell>ansible文档-t查找变量

为了使代码更加健壮和用户友好,我建议使用密码重命名变量。例如“artifactory\u passwd”等。然后,在查找中,动态创建变量的名称

password:“{{lookup('vars',item~''u passwd')}”
这太完美了。非常感谢。(我也接受了你的建议)