Warum kommt es zu einem Konflikt zwischen meinem Namespace und meinem Klassennamen?

Warum kommt es zu einem Konflikt zwischen meinem Namespace und meinem Klassennamen?

Ich habe ein Puppet-Modul installiert, das heißt ntp.

Einen Knoten definiere ich durch

node testip { include myconfig::ntpp }

und in /etc/puppet/modules/myconfig/manifests/init.pphabe ich

class myconfig::ntpp {
  include common
  class {'ntp':
      server_list => $common::data::ntpServerList
  }
}

Das funktioniert perfekt.

Aber wenn ich ersetze myconfig::ntppdurch myconfig::ntpbekomme ich

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Duplicate declaration: Class[Myconfig::Ntp] is already declared; cannot redeclare on node testip

Frage

Ist es möglich, dass mein Knoten so aussieht?:

node testip { include myconfig::ntp }

Antwort1

Dies ist ein Designproblem in Puppet, das sich darauf bezieht, wie Puppet versucht, die Klassennamen aufzulösen. Siehedieses Ticket für weitere Informationenoderdieser Link zu Namespaces.

Und Sie sollten versuchen, auf Ihre Top-Level-Module zuzugreifen NTPmit

class { "::ntp":
   server_list => ...
}

verwandte Informationen