hiera.yaml木偶hiera相當於Ansible
---
:hierarchy:
- node/%{host_fqdn}
- site_config/%{host_site_name}
- site_config/perf_%{host_performance_class}
- site_config/%{host_type}_v%{host_type_version}
- site/%{host_site_name}
- environments/%{site_environment}
- types/%{host_type}_v%{host_type_version}
- hosts
- sites
- users
- common
# options are native, deep, deeper
:merge_behavior: deeper
目前,我們有這個hiera配置。因此,配置會按照以下順序合併:common.yaml> users.yaml> sites.yaml> hosts.yaml> types/xxx_vxxx.yaml>等。對於變量最高的層次結構,只有在該文件存在時纔會被覆蓋。
如: common.yaml
server:
instance_type: m3.medium
site_config/mysite.yaml
server:
instance_type: m4.large
因此,對於所有其他網站,實例類型將是m3.medium,但僅限於mysite的它會be m4.large。
我如何在Ansible中實現相同?
好了哇:這是一個超現實的問題。我想說這在內在的Ansible中是不可能的。按照Puppet的方式進行優先級動態數據查找的整個概念與Puppet作爲軟件運行的方式緊密相關,以至於我認爲它不適合Ansible試圖實現的目標。這聽起來像是一個非常酷的新FOSS想法。 –