Назад | Перейти на главную страницу

Puppet: Можно ли предоставить дополнительную информацию при реализации экспортируемого ресурса?

Предположим, я хочу hostB иметь отдельный файл для каждого узла марионетки, но с владельцем, который известен только hostB.

Теоретически это можно сделать, если мы позволим hostB написать собственный факт (my_special_owner), а затем прочтите этот факт через query_facts функция в my_resource определение hostA. Но это кажется слишком грязным: оно загрязняет пространство имен фактов бессмысленным материалом, что может вызвать конфликты имен. Для такой простой вещи также требуется много кода.

Вот макет того, что я имею в виду:

define my_resource() {
  $owner=${my_collector::owner} #This attempt fails
  file{$name: ensure=>exists, owner=>$owner}
}

node hostA {
  @@my_resource{"/tmp/file1.tmp"}
}


class my_collector($owner) {
  # How to pass $owner to the collector below?
  My_resource <<| |>> 
}

node hostB {
  class {'my_collector': owner=>bob}
}

Видеть эта секция для документации Puppet о настройке атрибутов сборщика. Пример:

File <| |> {
  owner => 'foo',
}