Puppet (chyby)

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

Nelze stáhnout katalog

Tato chybová zpráva se objevuje pokud z nějakého důvodu master odmítá komunikaci s klientem. K tomu může dojít z více různých příčin.

Neběží master

err: Could not retrieve catalog from remote server: Connection refused - connect(2)

Problémy spojené s certifikátem

  • Certifikát, který má klient k dispozici aktuální master neautorizoval, nebo z nějakého důvodu došlo k jeho revokaci - odvolání...
err: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server session ticket A: sslv3 alert certificate revoked
  • Také mohl stroj používat původně jiný master...
err: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed. This is often because the time is out of sync on the server or client

Nejprve je třeba zkontrolovat, jestli pro příslušného klienta není nějaký certifikát na stroji master vydaný.

Pokud ano, tak je třeba nejprve provést odstranění původního certifikátu.

Protože klient má u sebe má v podadresáři /var/lib/puppet certifikát a soubory, které jsou už neplatné, musí se před vygenerováním nové žádosti odstranit.

support (KVM) :~# find /var/lib/puppet -type f -print0 | xargs -0r rm

Teprve pak lze vygenerovat novou žádost o certifikát , kterou je nutné na stroji master opět podepsat.

Chybějící nastavení nodu v manifestu

  • Překlep v definici názvu klientského nodu
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find default node or by name with 'temporary.felk.cvut.cz, temporary.felk.cvut, temporary.felk, temporary' on node temporary.felk.cvut.cz

Je třeba zkontrolovat, zda-li definice nodu v manifestu odpovídá jménu, kterým se klient identifikuje vůči stroji master.

Chyba v syntaxi manifestu

Vůbec nejčastější příčinou je chyba v syntaxi. Pozitivní je, že výpis obsahuje i upřesnění ve kterém souboru a na kterém řádku je třeba chybu hledat.

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not parse for environment testing: Syntax error at '{'; expected '}' at /etc/puppet/environments/testing/manifests/nodes.pp:149 on node temporary.felk.cvut.cz

Aplikace neexistující třídy

K této chybě může dojít buď díky překlepu, nebo pokud nejsou splněny všechny závislosti i modulů. Níže uvedený ukázkový výpis chyby obsahuje upozornění, že v manifestu stroje temporary.felk.cvut.cz je použita třída s názvem 'tree', která však neexistuje. To může být relikt a nebo naopak třída kterou je nutno zahrnout do závislostí modulu.

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class tree for temporary.felk.cvut.cz on node temporary.felk.cvut.cz

Chybějící šablona či neplatná cesta k šabloně

Šablona z modulu

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find template 'temporary/test_source_on_master' at /etc/puppet/environments/testing/modules/temporary/manifests/init.pp:243 on node temporary.felk.cvut.cz
file {"/tmp/subdir/test.txt":
    content => template("temporary/test_source_on_master"),
    ensure => present,
}

Šablona z centrálního úložiště

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find template 'test_source_on_master' at /etc/puppet/environments/testing/modules/temporary/manifests/init.pp:243 on node temporary.felk.cvut.cz
file {"/tmp/subdir/test.txt":
    content => template("test_source_on_master"),
    ensure => present,
}

Šablona identifikovaná absolutní cestou

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template /etc/puppet/environments/testing/modules/support/files/test_source_on_master:
Filepath: /usr/lib/ruby/vendor_ruby/puppet/parser/templatewrapper.rb
Line: 100
Detail: No such file or directory - /tmp/test_source_on_master
at /etc/puppet/environments/testing/modules/support/manifests/init.pp:243 on node temporary.felk.cvut.cz
file {"/tmp/subdir/test.txt":
    content => template("/tmp/test_source_on_master"),
    ensure => present,
}

Chyby v adresářové struktuře a souborech

Neplatná cesta na straně klienta

err: /Stage[main]/Temporary::Novell/File[/tmp/subdir/test.txt]/ensure: change from absent to present failed: Could not set 'present on ensure: No such file or directory - /tmp/subdir/test.txt at /etc/puppet/environments/testing/modules/temporary/manifests/init.pp:244

Chybějící soubor či neplatná cesta k souboru

Cesta k souboru z centrálního úložiště

err: Failed to apply catalog: Parameter source failed: Cannot use relative URLs 'test_source_on_master' at /etc/puppet/environments/testing/modules/temporary/manifests/init.pp:245
file {"/tmp/subdir/test.txt":
    source => "test_source_on_master",
    ensure => present,
}

Neplatná absolutní cesta k souboru

err: /Stage[main]/Temporary::Novell/File[/tmp/subdir/test.txt]: Could not evaluate: Could not retrieve information from environment testing source(s) file:/tmp/test_source_on_master at /etc/puppet/environments/testing/modules/temporary/manifests/init.pp:245
file {"/tmp/subdir/test.txt":
    source => "/tmp/test_source_on_master",
    ensure => present,
}

Chybějící soubor v úložišti modulu

err: /Stage[main]/Temporary::Novell/File[/tmp/subdir/test.txt]: Could not evaluate: Could not retrieve information from environment testing source(s) puppet:///modules/temporary/test_source_on_master at /etc/puppet/environments/testing/modules/temporary/manifests/init.pp:245
file {"/tmp/subdir/test.txt":
    source => "puppet:///modules/support/test_source_on_master",
    ensure => present,
}