Ваш код должен быть правильно размещен в модулях.Когда Puppet ищет класс с именем alibi
, он проверяет каждый каталог в вашем модуле пути (неясно, что это в вашем случае, но, возможно, просто /tmp/kitchen/modules
) для файла alibi/manifests/init.pp
.Рабочий каталог и каталог манифеста не имеют значения, по крайней мере, в любой версии Puppet, которая должна использоваться где-либо еще.
Однако это конкретное имя является частным случаем, поскольку оно будет интерпретироваться какимя основного класса модуля.Другие классы и определенные типы в том же модуле будут отображаться немного по-другому.Например, alibi::good
будет сопоставлен с alibi/manifests/good.pp
, а alibi::alibi
будет сопоставлен с alibi/manifests/alibi.pp
.
Это нормально, если я использую init.pp вместо entry.pp (ноhiera_include () не вызывается)
Ну да и нет.Puppet не полагается на соглашения о сопоставлении файлов и проверяет текущий каталог, когда вы явно указываете ему, какой файл оценивать.Поэтому, когда вы явно указываете ему init.pp
, он находит и оценивает этот файл.Но нет, оценка этого файла сама по себе бесполезна: Puppet проанализирует объявление класса, но в этом манифесте нет ничего, что говорило бы применить этот класс к целевому узлу.