web-dev-qa-db-ja.com

名前空間とクラス名が競合するのはなぜですか?

ntpというパペットモジュールがインストールされています。

ノードは次のように定義しますか

node testip { include myconfig::ntpp }

そして/etc/puppet/modules/myconfig/manifests/init.ppで私は

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

これは完全に機能します。

しかし、myconfig::ntppmyconfig::ntpに置き換えると

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

質問

私のノードを次のようにすることは可能ですか?:

node testip { include myconfig::ntp }
2
Sandra

これは、puppetがクラス名を解決しようとする方法に関するpuppetの設計上の問題です。 詳細についてはこのチケット または 名前空間に関するこのリンク を参照してください。

そして、あなたはあなたのトップレベルのNTPモジュールにアクセスしようとするべきです

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