Можно ли выполнять поиск в Hiera в модуле?

У меня есть сервис, реализованный на Java, который зависит от 3 файлов свойств. Я определил 'define' для каждого файла свойств в модуле общих свойств и использовал их из модуля, специфичного для службы. Определение для одного из файлов свойств показано ниже:

define properties::rabbitmq (
  $property_file,
  $service_name,
  $rabbitmq_host,
  $rabbitmq_username,
  $rabbitmq_password,
  $rabbitmq_port,
  $rabbitmq_vhost) {
  file { $property_file:
    ensure  => file,
    content => template('config/rabbitmq.properties.erb'),
    mode    => '0644',
    notify  => Service[$service_name],
  }
}

Я следую ролям и шаблонам профиля в своем марионеточном коде и выполняю все поиски в специальном профиле службы. Теперь из-за этого всякий раз, когда происходит изменение в файлах свойств, мне нужно вносить каскадные изменения во все мои кукольные модули, которые используют этот файл свойств. Изменения необходимы в профиле (поиск по hiera), модуле init.pp (добавление / удаление параметров из конструктора) и config.pp (настройка параметров при вызове define для файла свойств).

Я чувствую, что вышеуказанная проблема может быть решена путем включения поиска hiera в 'define' для файла свойств, например так:

define properties::rabbitmq ($property_file, $service_name,) {

  $rabbitmq_host = hiera('rabbitmq_host')
  $rabbitmq_username = hiera('rabbitmq_username')
  $rabbitmq_password = hiera('rabbitmq_password')
  $rabbitmq_port = hiera('rabbitmq_port')
  $rabbitmq_vhost = hiera('rabbitmq_vhost')

  file { $property_file:
    ensure  => file,
    content => template('config/rabbitmq.properties.erb'),
    mode    => '0644',
    notify  => Service[$service_name],
  }
}

Но, выше, это нарушение ролей и профиля профиля. Вышесказанное делает поиск в модуле, а не в профиле. Теперь модуль тесно связан с hiera. Я полагаю, что это внутренний модуль (не предназначенный для марионеточной подделки), поэтому следует нарушать правила в пользу удобства сопровождения кода.

Я стремлюсь к мнению других по поводу выше.

0 ответов

Другие вопросы по тегам