Error 400 on SERVER: Could not find class “foo” for “node” on “node”

Alweer een Puppetprobleem. Opeens zegt de puppet-agent dat hij een bepaalde module niet kan vinden op de master. Maar, zoals in alle slechte verhalen, de module was er wel. En ze stond op de juiste plaats.

Zowat alles werd onderzocht. De module stond er, was correct, vertoonde geen syntaxfouten; de server had rechten om te lezen en uit te voeren; kortom, er was geen enkele reden waarom het niet zou werken.

En toch

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class

Frustrerend.

Na nog wat extra google-fu werd de oplossing gevonden in een ondergesneeuwd antwoord op deze vraag. Was de metadata.json wel correct? En jawel. Ik had de parameters “requirements” en “dependencies” omgedraaid. requirements verwijst naar de verwachte puppetversie en is niet verplicht. De puppetmodules die nodig zijn voor de module staan in dependencies. En helaas bleek ik die te hebben omgewisseld.

Op zich geen probleem (afhankelijkheden worden niet gecontroleerd in onze setup), maar ik had enkel “requirements” en niet “dependencies“. En dependencies is verplicht, en als een verplichte parameter ontbreekt, dan weigert puppet dienst. Met een wel heel verwarrende foutmelding tot gevolg.

Geef een reactie

Je e-mailadres zal niet getoond worden. Verplichte velden zijn gemarkeerd met *