Как записать параметры класса в hiera

Я только что вошел в hiera и теперь настроил его, мои попытки перехода на hiera были очень сложными, поскольку я не могу получить синтаксис записи. Может ли кто-нибудь помочь мне преобразовать приведенное ниже объявление класса в hiera?

Текущие объявления в моем файле declare.pp:

class profile::web {
  class { 'nsswitch':
    automount => 'files',
    hosts => ['files','dns'],
  }
}

class { 'sudo': }
    sudo::conf { 'web-users':
    sudo_config_dir => '/etc/sudoers.d/',
    source => 'puppet:///files/web/web-users.conf',
}

Спасибо Дэн


person Dan    schedule 02.10.2013    source источник
comment
Hiera не предназначена для объявления классов. В hiera вы храните данные, которые можете использовать в своих манифестах марионеток. Вы объявляете класс в puppet и можете использовать hiera для предоставления ему данных на основе таких фактов, как имя узла, среда и т. д.   -  person Lodewijk Bogaards    schedule 02.10.2013


Ответы (1)


Простой:

---
nsswitch::automount:  files
nsswitch::hosts:
  - files
  - dns

В файлах hiera; никогда не используйте вкладки!!

В вашем манифесте вы можете использовать

include nsswitch

ИЛИ вы можете загрузить список классов из Hiera с помощью функции hiera_include:

hiera_include('classes')

Тогда вам понадобится массив классов в файле Hiera.

person Ger Apeldoorn    schedule 03.10.2013
comment
Для создания ресурсов (sudo::conf!) вам понадобится функция create_resources. - person Ger Apeldoorn; 03.10.2013
comment
Почему бы никогда не использовать вкладки в файлах hiera? Это относится к YAML или также к форматам данных JSON (и другим)? - person xiankai; 05.10.2013
comment
Это ямл-вещь. Парсер будет выдавать загадочные сообщения об ошибках, которые не имеют ничего общего с «убери эту чертову вкладку из своего yaml-файла!» - person Ger Apeldoorn; 07.10.2013