所以我使用一个角色来配置我的 postgresql 服务器。该 tole 有一种指定服务器用户和数据库的方法,如下所示:
postgresql_users:
- name: baz
我的 hosts.yaml:
all:
hosts:
children:
django:
hosts:
django_1:
username: django1
userpass: django1_pass
django_2:
username: django2
userpass: django2_pass
db:
hosts:
db1:
任何我的 playbook.yaml:
- hosts: db
become: true
roles:
- role: anxs.postgresql
我想用这些信息做的是获取所有 django 主机并获取他们的用户名和用户密码变量。
然后,根据这些信息组成 postgresql_users 变量,就好像它是手工编写的一样(下面 hosts.yaml 的相关(期望结果)部分):
db:
hosts:
db1:
postgresql_users:
- name: django1
password: django1_pass
encrypted: true
- name: django2
password: django2_pass
encrypted: true
我发现这个问题解决了我的问题,但不幸的是,我对 Ansible 太陌生,无法真正理解那里的建议。
那么我怎样才能进行适当的迭代来组成我想要的 postgresql_users 变量呢?
A:可以在第一次播放时创建变量并在以后使用它。例如
给
也可以使用
template
和创建库存文件。例如使用模板任务
创建库存