2016-04-12 5 views
0

Wenn Sie den folgenden Befehl ausführen:Fehler: Können nicht vollständig Katalog anwenden: Gefunden 1 Abhängigkeitszyklus

puppet apply --verbose /etc/puppet/manifests/sites.pp/site1.pp 

ich den Fehler:

Error: Could not apply complete catalog: Found 1 dependency cycle: 
(File[/etc/postfix] => File[/etc/postfix]) 
Try the '--graph' option and opening the resulting '.dot' file in OmniGraffle or GraphViz 

Hier ist das damit verbundene manifest/Module:

/etc/puppet/modules/postfix/manifests/init.pp:

class postfix { 

    package { 'postfix' : 
     ensure => present 
    } 

    file { '/etc/postfix' : 
     path => "/etc/postfix/main.cf", 
     ensure => present, 
     content => template("postfix/main.cf.erb"), 
     subscribe => Package['postfix'] 
    } 

} 

/etc/puppet/manifests/sites.pp/site1.pp:

class site1 { 

    include apache2 
    include essentials 
    include mysql 
    include python2 
    include postfix 
} 

Es gibt keine andere Erwähnung von Postfix in einem der anderen Module und die include postfix Entfernen ermöglicht die vollständige Puppe anwenden um fortzufahren, also nehme ich an, dass es in sich abgeschlossen ist.

Ich habe auch versucht, die Vorlage zu entfernen und Placeholder-Inhalt in das Modul selbst zu setzen, um keine Änderung.

Antwort

2

Aus irgendeinem Grund verwenden Sie einen anderen Pfad als den Ressourcennamen. Das verursacht eine Autoinclude von Selbst und eine zirkuläre Abhängigkeit.

file { '/etc/postfix' : 
    ensure=>directory 
} 
file { '/etc/postfix/main.cf': 
    ensure => present, 
    content => template("postfix/main.cf.erb"), 
    subscribe => Package['postfix'] 
} 

Wird Ihr Problem

+0

derp lösen! Vielen Dank :) – DanH