2016-07-14 7 views
0

Ich versuche die Ausführung der in meinem Manifest definierten Schritte "von oben nach unten" zu erreichen.Die Puppet-Manifest-Reihenfolge schlägt aufgrund des Dependency-Zyklus fehl

define ui_deploy::ui_deploy_manifest($deploy_params, $params) { 

$version = $deploy_params['version'] 
$install_dir = $deploy_params['install_dir'] 

file { "$install_dir/unzip-ui.ps1": 
    ensure => present, 
    content => template('ui_deploy/unzip.erb') 
} 

exec { "unzip_ui": 
    path => 'C:\Windows\System32\WindowsPowerShell\v1.0', 
    command => "powershell -executionpolicy remotesigned -file ${install_dir}/unzip-ui.ps1", 
    require => File["$install_dir/unzip-ui.ps1"], 
    logoutput => true 
} 

file { "thirdparties": 
    path => 'D:\teamdeploy_install_dir\ui', 
    source => 'D:\teamdeploy_install_dir\thirdp', 
    recurse => true, 
    require => [ 
       Exec["unzip_ui"], 
       Anchor["after-com.team.project.project-thirdparty"], 
       ] 
} 

file { "$install_dir/msbuild.bat": 
    ensure => present, 
    content => template('ui_deploy/msbuild.erb'), 
    require => File["thirdparties"] 
} 

exec { "run_msbuild": 
    command => "cmd.exe /c ${install_dir}\\msbuild.bat", 
    path => $path, 
    require => File["$install_dir/msbuild.bat"], 
    logoutput => true 
}} 

Während manifest Parsing scheitert es mit

Puppet (err): Es kann keinen kompletten Katalog anwenden: Gefunden 1 Abhängigkeitszyklus: (Exec [unzip_ui] => File [thirdparties] => Datei [D: \ teamdeploy_install_dir \ ui/dekomprimieren-ui.ps1] => Exec [unzip_ui])

ich kann wirklich nicht verstehen, wo der Zyklus ist hier. Aus meiner Sicht ist es eine Abhängigkeitskette, aber keine Schleife. Bitte zeig mir, wo ich falsch liege. Ich habe auch versucht, es auf 'vor' Aussagen umschreiben, aber das Ergebnis ist das gleiche.

+0

'Anchor [" after-com.team.project.project-thirdparty "],' scheint der problematische Parameter zu sein. Versuchen Sie es zu entfernen und lassen Sie mich wissen, was passiert. –

+0

Der von Ihnen vorgestellte Code erklärt nicht den Zyklus. Genauer gesagt, erklärt es nicht die Abhängigkeit, ausgedrückt als 'Datei [thirdparties] => Datei [D: \ teamdeploy_install_dir \ ui/unzip-ui.ps1]'. Wenn das, was Sie präsentieren, tatsächlich der Ort der Ressourcendeklarationen ist, die an dem Problem beteiligt sind, dann werden eine oder mehrere zusätzliche Beziehungen auf andere Weise deklariert - entweder über Ressourcen-Standardeinstellungen oder über eine Collector-basierte Ressourcen-Überschreibung . –

+0

Beachten Sie auch, dass das Problem während der Kataloganwendung erkannt wird, nicht im Manifest-Parsing (Katalogerstellung). –

Antwort

0

Umschreiben auf notify => subscribe Anweisungen löst dieses Problem.