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

Как исправить ошибки недопустимых параметров в манифестах марионеток?

У меня есть кажущаяся невозможной ошибка в очень простом манифесте марионеток. Я просто пытаюсь использовать модуль example42 puppet-puppet для запуска puppetmaster (с puppet 3.1.0). Это мой site.pp:

node 'se2' { 
    class { 'puppet::server' :
        mode => 'server' }    
}
Exec { path => "/usr/bin:/usr/sbin:/bin:/sbin" }
node default { }

При этом я получаю ошибку:

Info: Loading facts in /var/lib/puppet/lib/facter/last_run.rb
Info: Loading facts in /var/lib/puppet/lib/facter/puppi_projects.rb
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter mode at /etc/puppet/manifests/site.pp:7 on node se2

(строка 7 - строка с режимом)

Должно быть, я делаю что-то глупое, из того, что я вижу здесь, режим является допустимым параметром:

https://github.com/example42/puppet-puppet/blob/master/manifests/init.pp#L320

Какие-либо предложения?

Вы ссылаетесь на server.pp, вызывая puppet::server

См. Этот класс для puppet :: server https://github.com/example42/puppet-puppet/blob/master/manifests/server.pp

Чтобы ссылаться на класс с параметром 'mode', используйте puppet.pp:

node 'se2' { 
  class { 'puppet' :
    mode => 'server',
  }    
}
Exec { path => "/usr/bin:/usr/sbin:/bin:/sbin" }
node default { }

Внизу страницы это:

### PuppetMaster configuration
if $puppet::mode == 'server' {
  include puppet::server
}

Но твой класс уже puppet::server. Я не слишком хорошо знаком с написанием поставщиков, но класс, включающий самого себя, вряд ли будет работать. Можете попробовать сделать так, чтобы у вашего класса было другое имя?