Verwenden von Chocolatey als Paketanbieter für Puppet

Verwenden von Chocolatey als Paketanbieter für Puppet

Ich versuche, Chocolatey zu verwenden (http://chocolatey.org) als Paketanbieter für Puppet, aber ich erhalte ständig diesen Fehler, wenn ich den Puppet-Agenten auf meiner Win 7-Box ausführe.

info: Caching catalog for ldap-windows-vm.localdomain
err: Failed to apply catalog: Parameter provider failed: Invalid package provide
r 'chocolatey' at /etc/puppet/environments/beta/modules/stormaas/manifests/init.
pp:9

Ich habe dieses Modul platziert,https://github.com/rismoney/puppet-chocolatey, in meinem Verzeichnis „modules/“ auf meinem Puppet-Master habe ich „pluginsync“ sowohl auf dem Master als auch auf dem Slave auf „true“ gesetzt – und verwende bereits einige importierte Typen, die mit demselben Setup funktionieren.

Aufruf des Pakets mit:

  package { 'stormaas':
    ensure   => installed,
    provider => 'chocolatey',
  }

Ich habe es sowohl mit dem auf „chocolatey“ eingestellten Provider als auch mit „chocolatey“ versucht, für den Fall, dass es ein Problem mit den Anführungszeichen war, und habe bei jeder Änderung sowohl den Master als auch den Slave neu gestartet und den Agenten mehrmals ausgeführt, um sicherzustellen, dass er aktualisiert wurde.

Alle anderen Aspekte des Moduls, das auf die Maschine angewendet wird, funktionieren – nur dieser nicht.

Irgendwelche Gedanken?

Antwort1

Das scheint tatsächlich ein Puppet-Fehler zu sein – ich verwende dynamische Umgebungen, sodass mein Modul ursprünglich unter /etc/puppet/environments/beta/chocolatey/ platziert war, aber als ich das Modul nach /etc/puppet/modules verschoben habe, hat es funktioniert.

Interessant ist, dass benutzerdefinierte Typen in der Umgebung einwandfrei funktionierten – die Synchronisierung benutzerdefinierter Anbieter schlug jedoch fehl.

Das Modul funktioniert anscheinend großartig. Es könnte ein paar Macken haben. Wenn ich auf welche stoße, werde ich sie patchen und einen Pull Request einreichen.

Antwort2

Sobald Sie die Probleme mit dem Modulpfad behoben haben, finden Sie hier weitere Informationen zu anderen Problemen, die auftreten können, und wie Sie diese beheben können.

Der Chocolatey-Anbieter (jetzt ansässig unterschokoladig/schokoladig), erfordert die Installation von Chocolatey selbst. Seit der Veröffentlichung vonVersion 1.1.0, der Anbieter kümmert sich tatsächlich darum, dass Chocolatey installiert wird. Sie müssen nur irgendwo in Ihren Manifesten Folgendes hinzufügen:

include chocolatey

Wenn Sie weitere Szenarien im Zusammenhang mit der Chocolatey-Klasse kennenlernen möchten, können Siedie verfügbaren Parameter finden Sie in der ReadMe-Datei. Beispiel enthalten:

class {'chocolatey':
  chocolatey_download_url => 'https://internalurl/to/chocolatey.nupkg',
  choco_install_location => 'D:\secured\choco',
  use_7zip => false,
  choco_install_timeout => 2700,
  enable_autouninstaller => true,
}

verwandte Informationen