目前我们有一个 huge 文件,其中包含我们所处理的每个网站的所有nginx配置。该文件大约有150行左右的网站:
- { nginx_tempalte: 'site.conf.tpl', domain: 'example.com', server: 'ServerA', enabled: true, conf_name: 'example_site' }
我们的剧本循环每次变换2次。一旦进入sites-enabled
,另一个进入符号链接。每个循环大约需要5分钟,这不是理想的。
我尝试设置一个嵌套循环,该循环接收一个已注册的变量,该变量具有来自站点的所有配置名称,并根据之前的给定变量检查它们。然而,这似乎更像是同样的方法。
我希望能帮助您过滤这些文件。
答案 0 :(得分:1)
这取决于你是如何得到这个词典的。如果它是变量,您可以:
---
- name: Test
hosts: localhost
gather_facts: False
# with predefined vars
vars:
nginx: { nginx_tempalte: 'site.conf.tpl', domain: 'example.com', server: 'ServerA', enabled: true, conf_name: 'example_site' }
tasks:
- name: Fact
set_fact:
domain: "{{ nginx['domain'] }}"
server: "{{ nginx['server'] }}"
- name: Print Domain
debug:
var: domain
- name: Print Server
debug:
var: server
并且您将同时拥有两个值:
PLAY [Test] ********************************************************************************************************************
TASK [Fact] ********************************************************************************************************************
ok: [localhost]
TASK [Print Domain] ************************************************************************************************************
ok: [localhost] => {
"domain": "example.com"
}
TASK [Print Server] ************************************************************************************************************
ok: [localhost] => {
"server": "ServerA"
}
PLAY RECAP *********************************************************************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0