Назад | Перейти на главную страницу

Почему мое пространство имен и имя класса конфликтуют?

У меня установлен марионеточный модуль, который называется 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 }

Это проблема дизайна в марионетке, связанная с тем, как марионетка пытается разрешить имена классов. Видеть этот билет для получения дополнительной информации или эта ссылка относительно пространств имен.

И вы должны попытаться получить доступ к своему высшему уровню NTP модули с

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