ansible - 在 ansible 2.13 中弃用 hash_behavior 合并
问题描述
我们有很多 group_vars/webserver/*.yml 文件,其结构如下。
如果没有 hash_behaviour = merge,这些站点将不再合并,并且不再可能以干净的方式配置多个虚拟主机。
你有什么建议来解决这个问题?
项目1.yml
sites:
project1:
enable: true
pool:
version: php7.4
server_name: project1.de.dev.local
vhost_ssl:
document_root: /home/www/project1/www/
项目2.yml
sites:
project2:
enable: true
pool:
version: php7.4
server_name: project2.de.dev.local
vhost_ssl:
document_root: /home/www/project2/www/
解决方案
我删除了 ansible.cfg 中的 hash_behaviour = merge 并添加了一个合并站点的 set_fact 任务。
任务.yml
- set_fact:
sites: >-
{%- set result={} -%}
{%- for key, value in vars.items() -%}
{%- if 'site_' in key -%}
{{ result.__setitem__(key|replace('site_', ''), value) }}
{%- endif -%}
{%- endfor -%}
{{ result }}
项目1.yml
site_project1:
enable: true
pool:
version: php7.4
server_name: project1.de.dev.local
vhost_ssl:
document_root: /home/www/project1/www/
项目2.yml
site_project2:
enable: true
pool:
version: php7.4
server_name: project2.de.dev.local
vhost_ssl:
document_root: /home/www/project2/www/
推荐阅读
- sql - Distinct() 不能与 SQL 中的时间戳一起正常工作
- android - 在颤振应用程序中生成签名报告时出错
- excel - Excel VBA .替换不替换文本
- angular - 导航到特定路由而不重新加载页面但更新 router.url
- xml - 如何使用节点从 TSQL 中的 XML 获取数据?
- spring-boot - 在带有 Spring Boot 的 Swagger 安全方案上使用两个 API 密钥
- ios - UITextView Height 如何增加它的某个点
- oauth-2.0 - 如何为修改其他电子表格和幻灯片的脚本启用权限?
- python - 匹配 ORB 特征并使用它们来查找同应性
- python - 无法找到 matplotlib 配置文件 .mplstyle 的正确文档