Как определить узлы из файла Hiera в Puppet?

1

Я использую puppet и модуль управления сетевыми устройствами puppet и пытаюсь создать свой собственный тип.

Во встроенном типе конфигурации маршрутизаторов вы можете указать список узлов, а затем конфигурацию внутри этого узла:

node "c2950.domain.com" { 
  Interface { duplex => auto, speed => auto } 
  interface { "FastEthernet 0/1": 
    description => "--> to end-user workstation", 
    mode => access, native_vlan => 1000 
  # [...] More configuration 
}

Я пытаюсь переместить декларацию манифеста узлов и конфигурацию моего пользовательского типа в файл Hiera, подобный этому:

nodes:
  - node1
  - node2

config_device:
  node1:
    custom_parameter: "whatever1"
  node2:
    custom_parameter: "whatever2" 

А затем в манифесте итерируйте файл hiera, создавая узлы с конфигурацией каждого узла с чем-то вроде (я принимаю в качестве ссылки этот вопрос в serverfault ):

class my_class {
  $nodes = hiera_array('nodes')

  define hash_extract() {
    $conf_hash = hiera_hash("config_device")
    $custom_paramter = $conf_hash[$name]     ## TRICK lies in $name variable

    node $name {
      my_custom_device { $name:
        custom_parameter   => $device_conf['custom_parameter']
      }
    }
  }
  hash_extract{$pdu_names: }
  }
}

Но для этого решения у меня есть две проблемы, я не могу определить nodeвнутри, defineи я не могу параметризовать имя узла. Итак, есть ли способ объявить узлы из файла Hiera с их конфигурацией внутри?

Pigueiras
источник

Ответы:

0

Почему вы хотите описать все узлы в одном файле hiera? Что делает hiera превосходным, так это его иерархическая конфигурация. Используйте отдельные файлы конфигурации для отдельных иерархических слоев и, наконец, создайте отдельный файл hiera для отдельного узла. И все эти слои будут объединены.

Казимирас Алиулис
источник
Я не знаю, поняли ли вы меня. Я не использую puppet стандартным способом, я пытаюсь использовать {{puppet device}} для настройки следующих устройств. Я ищу способ поместить всю конфигурацию устройства в один файл hiera, потому что я не хочу, чтобы люди, которые управляют конфигурацией устройств, редактировали манифесты.
Pigueiras