Podczas wykonywania puppet agent
połączenia z nowego obrazu pojawia się err: Could not find class custommod
błąd. Sam moduł jest /etc/puppet/modules/custommod
taki sam jak wszystkie inne moduły, które wywołujemy, ale ten jest uparty.
[site.pp]
node /clunod-wk\d+\.sub\.example\.local/ {
include base
include curl
include custommod
class{ "custommod::apps": frontend => "false}
[...]
}
Gdy puppetmaster jest uruchamiany z wyjściem debugowania, wyraźnie znajduje informacje o bazie i curl:
debug: importing '/etc/puppet/modules/base/manifests/init.pp' in environment production
debug: Automatically imported base from base into production
debug: importing '/etc/puppet/modules/curl/manifests/init.pp' in environment production
debug: Automatically imported curl from curl into production
err: Could not find class custommod for clunod-wk0130.sub.example.local at /etc/puppet/manifests/site.pp:84 on node clunod-wk0130.sub.example.local
Linia 84 jest include custommod
Skrócona struktura katalogów i plików:
/etc/puppet
|- manifests
| |- site.pp
|
|- modules
|- base
| |- manifests
| |- init.pp
|
|- curl
| |- manifests
| |- init.pp
|
|- custommod
|- files
| |- apps
| |- [...]
|
|- manifests
|- init.pp
|- apps.pp
Sprawdziłem pisownię:}
Treść init.pp
w katalogu klienta jest całkowicie nieistotna:
class custommod {
}
Celem jest utworzenie pustej klasy dla pliku apps.pp, czyli tam, gdzie znajduje się mięso.
class custommod::apps {
[lots of stuff]
}
Tylko nigdy nie dostaje się do pliku aplikacji. Jeśli to skomentuję include custommod
, powyższy błąd zostanie wygenerowany w class{ "custommod::apps": frontend => "false}
wierszu.
Czego mi brakuje podczas polowania, aby dowiedzieć się, jak generowany jest ten błąd? Muszę zauważyć, że to repozytorium działa dobrze, jeśli jest uruchamiane lokalnie przez puppet apply
.
could not retrieve catalog from remote server:
błąd, prawdopodobnie dlatego.
custommod
- może nawet spróbować init.pp
całkowicie usunąć , ponieważ nie powinno to być potrzebne.
strace
na nią okiem i spróbować dowiedzieć się, jakie pliki próbuje odczytać w ten sposób.