У меня есть определенный ресурс в /etc/puppet/modules/autofs/manifests/mount.pp (из модуля pdx-cat / autofs в https://forge.puppetlabs.com/pdxcat/autofs).
У меня есть модуль в /etc/puppet/modules/sheffield/manifests/autofs/net.pp, который пытается использовать определенный тип autofs :: mount.
class sheffield::autofs::net {
include ::autofs
autofs::mount { '/net':
map => '',
options => '-hosts',
}
}
Но когда клиент пытается получить каталог, я получаю следующую ошибку:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type autofs::mount at /etc/puppet/modules/sheffield/manifests/autofs/net.pp:7 on node rhel6test.shef.ac.uk
Любые идеи? Я подумал, что, возможно, проблема в том, что тип не загружается автоматически, поскольку он имеет то же имя (autofs), что и подкласс в sheffield :: autofs, поэтому я попытался переименовать его в sheffield :: auto-fs, и это не имело никакого значения.
Я попытался скопировать mount.pp из / etc / puppet / autofs / manifestests в / etc / puppet / sheffield / manifest / autofs /, и он нашел тип ресурса, но не работал из-за загрузки других недостающих зависимостей в mount.pp (и, очевидно, это не лучшее решение проблемы).
поскольку include ::autofs
не выдает ошибок, вы можете использовать то же самое ::
префикс для определения:
class sheffield::autofs::net {
::autofs::mount { '/net':
...
}
}
Если это не работает, вероятно, есть ошибка в пути к модулю или других связанных настройках.
include ::autofs
линия на самом деле не нужна. Mount-define включает все необходимые классы.
У меня была та же проблема: пользовательский ресурс определен, классы четко указаны в Foreman.
Для меня проблема оказалась в том, что metadata.json
был неправильно сформирован и отсутствовал атрибут "источник". Стоит проверить, кажется ли, что больше ничего не решает проблему!