Puppet eine Vorlage ausgeben, einen Befehl ausführen, eine andere Vorlage für dieselbe Datei erstellen, den Befehl ausführen
Ich hatte einen guten Riss dabei und kämpfe ein bisschen. Ich habe eine PHP5-Konsolendatei namens parameters.yml. Diese enthält einige Metadaten, um eine Verbindung zu einer Datenbank herzustellen, einige Befehle auszuführen und zu beenden.
Der erste Durchlauf ist perfekt, aber nach dem ersten Durchlauf muss ich parameters.yml von einer zweiten Vorlage mit anderen Metadaten aktualisieren und dann einen anderen Befehl ausführen. Puppet beschwert sich natürlich, dass:
Error: Evaluation Error: Error while evaluating a Resource Statement, Duplicate declaration
Ich habe versucht, ein Define zu erstellen und den Dateinamen als Variable zu setzen, in der Hoffnung, dass Marionette dies nur tun würde, aber leider nicht. Leider sieht es nicht so aus, als würde ich mit php console angeben, wo es die parameters.yml finden wird, mit der ich zwei Dateien ablegen kann, exec Console -parameters1.yml und dann -parameters2.yml.
Hier ist mein Code:
module.pp define module::params_file ($content_variable, $params_notify) { file { "$title": owner => 'root', group => 'root', content => $content_variable, require => File['/home/admin.tar.bz2'], notify => $params_notify, } }
parentFile:
module::params_file { '/home/components/app/config/parameters.yml': content_variable => "template('ace/admin/parameters.pre.yml.erb'),", # params_notify => "Exec['php console --no-interaction doctrine:migrations:migrate'],", params_notify => 'notice ("ACEInfo: This is applying the post-Config"),', } # Execute /home/components/app/console ---no-interaction doctrine:migrations:migrate exec { 'php console --no-interaction doctrine:migrations:migrate': path => "/usr/bin:/usr/sbin:/bin;/usr/bin/php;", cwd => '/home/components/admin/app', refreshonly => true, require => File['/home/components/admin/app/config/parameters.yml'], } module::params_file { '/home/components/app/config/parameters.yml': content_variable => "template('ace/admin/parameters.post.yml.erb'),", # params_notify => "Exec['php console --no-interaction doctrine:migrations:migrate'],", params_notify => 'notice ("ACEInfo: This is applying the post-Config"),', } # Execute /home/components/admin/app/console ---no-interaction doctrine:migrations:migrate exec { 'php console setup:insert-permissions': path => "/usr/bin:/usr/sbin:/bin;/usr/bin/php;", cwd => '/home/components/admin/app', refreshonly => true, require => File['/home/components/admin/app/config/parameters.yml'], }
Also, um kurze Notizen zu machen
- Quellvorlage /home/components/app/config/(pre)parameters.yml
- exec ausführen
- Quellvorlage /home/components/app/config/(post)parameters.yml
- exac ausführen
Vielen Dank
0 Antworten auf die Frage
Verwandte Probleme
-
3
Wie kann ich eine Verzeichnisstruktur "invertieren"?
-
1
Pausieren Sie alle Aufgaben außer x CPU-intensiven Aufgaben
-
7
Starten Sie den Synergy-Client beim Booten in Mac OS X
-
4
Wie synchronisieren Sie GreaseMonkey-Skripts zwischen Computern?
-
1
Kann ich ein Skript schreiben, das Benutzer automatisch wechselt?
-
6
Guter PowerShell-Leitfaden, der durch fortgeschrittene Verwendung Einstieg leistet
-
3
FTP "PUT" schlägt von der virtuellen Maschine aus, aber nicht vom Host-PC aus: 504 Der Befehl ist fü...
-
1
ksh entspricht perl $! Fehlerursache
-
2
Subskriptionsfehler außerhalb des Bereichs in VBScript-Skript
-
5
crontab, um osx aus dem schlaf zu erwecken