네임스페이스와 클래스 이름이 충돌하는 이유는 무엇입니까?

네임스페이스와 클래스 이름이 충돌하는 이유는 무엇입니까?

라는 꼭두각시 모듈이 설치되어 있습니다 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::ntpp하지만 내가 로 바꾸면 myconfig::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 }

답변1

이것은 꼭두각시가 클래스 이름을 해결하려고 시도하는 방법에 대한 꼭두각시의 디자인 문제입니다. 보다자세한 내용은 이 티켓을 참조하세요.또는네임스페이스에 관한 이 링크.

그리고 다음을 사용하여 최상위 NTP모듈에 액세스해야 합니다.

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

관련 정보