Ansible - 使用 "with_dict" 时检查变量值
Ansible - Checking for variable value when using "with_dict"
我目前正在使用自建剧本来管理网络服务器。我已经指定了应该在另一个文件中创建的网站,名为 sites.yml.
到目前为止,一切正常。除了,我想为我的网站添加 Let's Encrypt 支持,问题来了..如何?
我正在根据文件 sites.yml 的内容执行各种任务。但我想启用让我们使用每个站点的变量进行加密。
我的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's Encrypt,但是如何在 with_dict 循环中检查这个变量? Letsencrypt 任务应仅在设置变量时执行。
我觉得应该是这样的:
- name: LETSENCRYPT | Securing websites
command: --COMMAND FOR OBTAINING CERTIFICATE--
with_dict: "{{ sites }}"
when: "site.letsencrypt = true?"
谁能给我更多关于在 with_dict
循环中使用 when
的信息?
您可能需要查看 with_dict 文档。您可以使用 item.value
:
- name: LETSENCRYPT | Securing websites
command: --COMMAND FOR OBTAINING CERTIFICATE--
with_dict: "{{ sites }}"
when: item.value.letsencrypt | default(false) | bool
我目前正在使用自建剧本来管理网络服务器。我已经指定了应该在另一个文件中创建的网站,名为 sites.yml.
到目前为止,一切正常。除了,我想为我的网站添加 Let's Encrypt 支持,问题来了..如何?
我正在根据文件 sites.yml 的内容执行各种任务。但我想启用让我们使用每个站点的变量进行加密。
我的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's Encrypt,但是如何在 with_dict 循环中检查这个变量? Letsencrypt 任务应仅在设置变量时执行。
我觉得应该是这样的:
- name: LETSENCRYPT | Securing websites
command: --COMMAND FOR OBTAINING CERTIFICATE--
with_dict: "{{ sites }}"
when: "site.letsencrypt = true?"
谁能给我更多关于在 with_dict
循环中使用 when
的信息?
您可能需要查看 with_dict 文档。您可以使用 item.value
:
- name: LETSENCRYPT | Securing websites
command: --COMMAND FOR OBTAINING CERTIFICATE--
with_dict: "{{ sites }}"
when: item.value.letsencrypt | default(false) | bool