我使用字典列表来声明一些要在Web服务器上配置的网站。 有一些我不想每次都需要重新声明的计算属性,因此在使用它之前,我做了一个循环,声明所有计算/缺失的属性以获取适当的网站列表(字典)。
这是我现在正在做的
- name: Set server vhosts
set_fact:
websites: "{{ websites|default([]) + [item | combine({'vhost': '200-' + item.name, 'path': path_vhosts + '/' + item.name, 'domain': app_hosts[item.name]})] }}"
with_items: "{{ vhosts }}"
但是,这是非常有限的,如果要设置的属性太多,它将不可读。 我如何改进它以正确构建它?
以最佳方式,没有可变的虚拟主机,我们只是使用网站并替换它。
答案 0 :(得分:0)
Q:“如果要设置的属性太多,将无法读取。如何改进它以正确构建它?”
A:构建正确。格式化可能会有所帮助。见下文
- name: Set server vhosts
set_fact:
websites: "{{ websites|default([]) + [item|
combine({'vhost': '200-' + item.name,
'path': path_vhosts + '/' + item.name,
'domain': app_hosts[item.name]
}) ] }}"
loop: "{{ vhosts }}"