Ansible - 使用“with_dict”时检查变量值

时间:2017-10-27 09:29:37

标签: ansible lets-encrypt

我目前正在使用自制游戏手册来管理网络服务器。我已经指定了应该在另一个文件中创建的网站,名为sites.yml。

到目前为止,一切都运转良好。除此之外,我想在我的网站上添加Let's Encrypt支持,问题就出现了。怎么样?

我正在根据文件sites.yml的内容执行各种任务。但我想使用每个站点的变量启用Let的加密。

我的sites.yml如下:

sites:
  site1:
    name: site1
    server_name: site1.example.com
    document_root: /var/vhosts/site1.example.com
    environment: staging
    db_name: site1
    db_password: password
  site2:
    name: site2
    server_name: site2.example.com
    document_root: /var/vhosts/site2.staging.sddev.nl
    environment: staging
    db_name: site2
    db_password: password

我想添加一个像letsencrypt: true这样的变量来启用Let的加密,但是如何在with_dict循环中检查这个变量?只有在设置变量时才能执行Letsencrypt任务。

我认为它应该是这样的:

- name: LETSENCRYPT | Securing websites
  command: --COMMAND FOR OBTAINING CERTIFICATE--
  with_dict: "{{ sites }}"
  when: "site.letsencrypt = true?"

有人可以向我提供有关在when循环中使用with_dict的更多信息吗?

1 个答案:

答案 0 :(得分:1)

您可能需要查看with_dict文档。您可以使用item.value

- name: LETSENCRYPT | Securing websites
  command: --COMMAND FOR OBTAINING CERTIFICATE--
  with_dict: "{{ sites }}"
  when: item.value.letsencrypt | default(false) | bool