2015-06-22 2 views
0

Я использую Puppet 3.0. Я попытался использовать существующий модуль NGINX, но столкнулся с одной проблемой, которая, как представляется, не существует. Я перешел на сам модуль NGINX, который обрабатывает мои точные требования.Обтекание ресурсов внутри пользовательского класса и вызов класса?

Каждый пакет услуг/ресурсов/файл работает, как ожидалось, и теперь я переезжаю код из init.pp в /manifest/nginx.pp fileas класс:

class company_nginx { 

    ... Various resources 

} 

Сейчас я пытаюсь включить этот класс внутри init.pp

include company_nginx 

он возвращает ошибку:

Error: Could not find class nginx for localhost on node localhost

что с теп или концепцию я не хватает? Как я могу вызвать этот «класс» в файле init.pp для вызова ресурсов и настройки системы?

ответ

1

Имена файлов манифеста и классы, определенные внутри них, должны соответствовать точно. Если вы хотите иметь имена классов company_nginx, то оно должно быть в именах файлов company_nginx.pp.

Требуется от puppet autoloader.

+0

Это то, что я думал, но я пробовал только с nginx, и это все еще не сработало? –

+0

Каков полный путь к файлу и каково имя класса внутри файла? –

+0

Выяснил это ... вам нужно реализовать модуль согласно спецификации ... папка «модуль» должна иметь манифесты и/или файлы и/или каталоги шаблонов и шаблона() или файл() только пройти мимо имени модуля/filename НЕ каталог "шаблонов" –

1

Ваши имена классов должны быть квалифицированы для кукол, чтобы иметь возможность забрать их.

class nginx::company_nginx { ... } 

Этот класс будет загружен из модуля nginx файла manifests/company_nginx.pp.

Выполнение include company_nginx сделает Puppet предполагаем, что существуют фактические имена модулей company_nginx с классом, указанным в init.pp.

Смежные вопросы