Могу ли я настроить сопоставление модулей и файлов Puppet так, чтобы поиск начинался с верхней части дерева модулей?

Могу ли я настроить сопоставление модулей и файлов Puppet так, чтобы поиск начинался с верхней части дерева модулей?

Рассмотрим эти два файла модуля Puppet:

# File modules/a/manifests/b/c.pp
class a::b::c {
    include b::c
}

# File modules/b/manifests/c.pp
class b::c {
    notify { "In b::c": }
}

Похоже, что когда Puppet сталкивается с include b::cдирективой в классе a::b::c, он ищет соответствующий файл *.pp, оглядываясь назад от текущего класса, и решает, что он нашел правильный файл, расположенный в ../../b/c.pp. Другими словами, он разрешается b::cв тот же файл *.pp, include b::cв котором появляется оператор:modules/a/manifests/b/c.pp

Я ожидал (и хотел бы), чтобы он вместо этого нашел и загрузил файл modules/b/manifests/c.pp. Есть ли способ заставить Puppet делать это? Если нет, то мне кажется, что имена модулей не могут содержать никаких других имен модулей где-либо внутри них, что является довольно удивительным ограничением.

решение1

чтобы принудительно поместить его наверх, используйте 'include ::b::c'

Связанный контент