loops - Ansible:仅当主机名对应时如何循环遍历 2 个 var 字典
问题描述
我试图根据主机名循环到一组变量。我无法获得有条件的权利。
假设我有 2 组变量:
databases_eu:
- name: database_eu_1
port: 5432
login: {{ vault_user_database_eu_1 }}
password: {{ vault_pw_database_eu_1 }}
- name: database_eu_2
port: 5433
login: {{ vault_user_database_eu_2 }}
password: {{ vault_pw_database_eu_2 }}
databases_us:
- name: database_us_1
port: 5432
login: {{ vault_user_database_us_1 }}
password: {{ vault_pw_database_us_1 }}
- name: database_us_2
port: 5433
login: {{ vault_user_database_us_2 }}
password: {{ vault_pw_database_us_2 }}
我想根据主机名循环遍历它,我该怎么做?
我想像下面这样,但我错过了when
声明:
- name: copy configs
ansible.builtin.template:
src: config.yml.j2
dest: /opt/db/configs/{{ item.name }}.yml
owner: root
group: root
mode: '0644'
loop:
- "{{ databases_eu | inventory_hostname == 'eu.db.example.com' }}"
- "{{ databases_us | inventory_hostname == 'us.db.example.com' }}"
解决方案
谢谢。我通过创建一个 group_vars 目录来解决。感谢您的输入。
推荐阅读
- objective-c - 使用 Xcode 9.4.1 构建时 Mac 应用程序崩溃,使用 Xcode 8.3.3 构建时运行良好
- ruby-on-rails - 如何使用 wicked_pdf 在 ruby on rails 中使用的 erb 模板渲染 excel 表?
- bittorrent - bittorrent 片选策略
- windows - 如何将 ifstream 转换为 FILE*?
- munit - Munit 2.1 模拟 Map 响应
- logging - boost log 如何确定它应该使用哪些文件权限来创建日志文件?
- xamarin.forms - xamarin 表单:如何添加动态文本框并在数据库中保存多个
- python-3.x - Keras 回调不断跳过保存检查点,声称缺少 val_acc
- c++ - 位掩码助手和运算符重载语法设计
- python - 如何创建所有单词的字典,而不是在 Python 中逐个字符串?