【问题标题】:Filtering Array of Vars in Ansible在 Ansible 中过滤变量数组
【发布时间】:2018-04-27 13:28:13
【问题描述】:

目前我们有一个 巨大的 文件,其中包含我们工作的每个站点的所有 nginx 配置。该文件有大约 150 行左右的站点,如下所示:

- { nginx_tempalte: 'site.conf.tpl', domain: 'example.com', server: 'ServerA', enabled: true, conf_name: 'example_site'  }

我们的剧本循环遍历每个 var 2 次。一次用于将其放入sites-enabled,另一次用于符号链接。每个循环大约需要 5 分钟,这并不理想。

我尝试设置一个嵌套循环,该循环接收一个已注册的变量,该变量具有来自可用站点的所有配置名称,并根据之前的给定变量检查它们。然而,这似乎更像是相同的方法。

我希望得到一些帮助来过滤这些文件。

【问题讨论】:

  • 能否请您发送一个您如何获取数据的示例?你有一个 var 中的整个 dict 吗?

标签: arrays nginx server ansible


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 2023-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多