Система конфигурации Puppet hiera
hiera является частью Puppet. Это иерархическая система конфигурации, которая позволяет:
- хранить конфигурацию в отдельных файлах;
- включать соответствующие файлы конфигурации для каждого сервера, который мы автоматизируем с помощью Puppet.
Файлы конфигурации hiera
Каждая иерархия позволяет выбрать соответствующий файл конфигурации для ресурса на основе определенных критериев. Например, критериями могут быть имена узлов, группы узлов, операционные системы или дата-центры. Иерархии определяются в файле hiera.yaml, который также определяет путь к файлам в каждой иерархии.
Факты Puppet часто используются для выбора подходящих файлов. Например, путь может быть определен как "os/%{facts.os.name}.yaml". В этом случае каждый ресурс будет использовать файл, названный в соответствии с операционной системой, которую он использует, в каталоге os. Возможно, вам потребуется использовать пользовательские факты, например, для проверки того, какие микросервисы будут использовать сервер MariaDB или в каком дата-центре он работает.
Нам не нужно создавать файл для каждого возможного значения определенного факта. Мы можем определить файл конфигурации по умолчанию с настройками, которые разумны для большинства ресурсов. Другие файлы, при включении, переопределят некоторые из значений по умолчанию.
Файл конфигурации hiera будет выглядеть так:
version: 5
defaults:
datadir: global
data_hash: yaml_data
hierarchy:
- name: "Node data"
path: "nodes/%{trusted.certname}.yaml"
- name: "OS data"
path: "os/%{facts.os.family}.yaml"
- name: "Per-datacenter business group data" # Uses custom facts.
path: "location/%{facts.whereami}/%{facts.group}.yaml"
Этот файл будет включать глобальные файлы, файлы, специфичные для ОС, и узловые файлы. Каждая иерархия будет переопределять настройки из предыдущих иерархий.
Фактически, у нас может быть несколько файлов конфигурации hiera. hiera.yaml — это глобальный файл. Но обычно у нас будут дополнительные файлы конфигурации hiera для каждой среды. Таким образом, мы можем включать файлы конфигурации, которые применяются к производственной, тестовой среде и т. д., плюс глобальные файлы конфигурации, которые должны быть включены для каждой среды.
Важно, что мы также можем иметь файлы конфигурации hiera для каждого модуля. Например, отдельный mariadb/hiera.yaml файл может определять иерархии для серверов MariaDB. Это позволяет определить, например, разные файлы конфигурации для MariaDB и MaxScale, так как большинство необходимых настроек обычно отличаются.
Файлы конфигурации
Вы, вероятно, заметили, что в предыдущем примере мы определили data_hash: yaml_data, что указывает на то, что файлы конфигурации написаны в формате YAML. Другие разрешенные форматы — JSON и HOCON. Настройка data_hash определена в defaults, но может быть переопределена иерархиями.
Содержание, первоначально предоставленное Vettabase Ltd.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/puppet-hiera-configuration-system/