Ich benutze Puppet für meine Vagrant Provisioning. Früher habe ich bei https://forge.puppet.com/puppet/archive/types das Archiv-Modul zum Herunterladen und extrahieren Glasfischen wie folgt aus:Puppet-Datei-Ressource erfordert Archiv-Ressource
archive { '/tmp/glassfish-4.1.1.zip':
ensure => present,
extract => true,
extract_path => '/opt/',
source => 'http://download.java.net/glassfish/4.1.1/release/glassfish-4.1.1.zip',
cleanup => true,
creates => '/opt/glassfish4',
}
Danach Ressource angewendet wird, möchte ich wie dieses
file { 'domain.xml':
ensure => file,
path => '/opt/glassfish4/glassfish/domains/domain1/config/domain.xml',
source => 'puppet:///modules/glassfish/domain.xml',
}
ich eine Datei in das neu erstellte Glasfischen Verzeichnis verschieben Ich möchte in der Datei move resource verlangen, dass die Extraktion bereits durchgeführt wurde, da die Extraktion keine Datei erstellt, sondern ein Verzeichnis. Etwas wie
require => FILE['..']
funktioniert nicht.
Wenn Sie es mit einer 'File' Ressource machen könnten, wäre die Syntax' require => Datei ['/ full/path/to/managed/file'] ''. Beachten Sie die Groß- und Kleinschreibung, und Sie müssen auf die Ressource anhand ihres Namens oder Titels verweisen. Außerdem funktioniert das nur für Ressourcen, die eigentlich unter Puppet-Management stehen. Das könnte tatsächlich der Fall sein, aber da es nicht sicher ist, ist es eine viel bessere Herangehensweise, eine Beziehung mit der Ressource "Archiv" aufzubauen, wie Frédéric Henri vorgeschlagen hat. –