Ansible:引用变量名称中的变量内容
我试图从变量名访问变量的内容。我使用ansible vault创建了一些密码,并尝试创建数据库用户,如下所示:Ansible:引用变量名称中的变量内容,ansible,Ansible,我试图从变量名访问变量的内容。我使用ansible vault创建了一些密码,并尝试创建数据库用户,如下所示: postgresql_user: name: "{{ item }}" db: "{{ item }}" login_user: postgres_admin login_password: '{{postgres_admin}}' login_host: localhost login_port:
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')}”
这太完美了。非常感谢。(我也接受了你的建议)