hiera.yamlMúa rối hiera tương đương trong 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
Chúng tôi hiện có hiera cấu hình này. Vì vậy, cấu hình được hợp nhất trong chuỗi sau common.yaml> users.yaml> sites.yaml> hosts.yaml> types/xxx_vxxx.yaml> vv. Đối với các cấu trúc phân cấp trên cùng, nó sẽ bị ghi đè chỉ khi tệp đó tồn tại.
ví dụ: common.yaml
server:
instance_type: m3.medium
site_config/mysite.yaml
server:
instance_type: m4.large
Vì vậy, đối với tất cả các trang web khác, các loại ví dụ sẽ m3.medium, nhưng chỉ cho mysite nó sẽ là m4.large.
Làm cách nào để có thể đạt được điều tương tự trong Ansible?
Ok wow: đây là một câu hỏi siêu thực. Tôi muốn nói điều này là không thể trong nội tại Ansible. Toàn bộ khái niệm tra cứu dữ liệu động được ưu tiên theo cách mà Puppet làm cho chúng được gắn chặt với cách mà Puppet hoạt động như một phần mềm mà tôi không nghĩ nó phù hợp với những gì Ansible đang cố gắng đạt được. Điều này nghe có vẻ như một ý tưởng FOSS mới thực sự thú vị. –