Ich mache ein Test-Manifest für Marionette, um ein Paket mit choclatey Anbieter von Schmiede zu installieren.Include-Klasse von einem anderen Modul in Marionette
Wenn ich mich bewerben mit der Datei test.pp mit dem Code:
class test {
include chocolatey
if $::kernel == 'windows' {
Package {
provider => chocolatey,
}
}
package { '7zip':
ensure => installed,
}
}
nicht funktioniert und chocolatey installiert nichts, aber wenn ich ohne die Klasse mit dem Code versuchen:
include chocolatey
if $::kernel == 'windows' {
Package {
provider => chocolatey,
}
}
package { '7zip':
ensure => installed,
}
Warum? In der ersten Option, warum funktioniert nicht?
Eine wilde Vermutung, haben Sie einfach den obigen Code in eine Datei und dann mit Puppet ausführen? –
ja, und ich begann zu verstehen, warum, im ersten Beispiel habe ich 'node default {include test}' hinzugefügt und es funktioniert. Weil dieser Code Teil eines Moduls sein muss? – xabim
Wenn Sie Marionette nur für eine Klasse anwenden, wird die Klasse definiert, aber sie wird nicht deklariert. Es ist so, als würde man eine Funktion in der Shell definieren und sie dann nicht wirklich aufrufen. Also musst du die Klasse irgendwo "einschließen". –