gem がだめなわけは、puppetrun が入らないから。(0.22.1, 0.22.2 で確認。)puppetrun 使わないなら gem で構わないけど。metadata 覗いたら、executables の中に puppetrun がない。こんな感じ。
executables: - puppet - puppetd - puppetmasterd - puppetdoc - puppetca
とりあえずチケットに入れておいた。
あと、最新のバージョン 0.22.2 だと、以下のエラーが出る。
$ sudo puppetd --listen --no-client -v /usr/lib/ruby/site_ruby/1.8/puppet/util/config.rb:29:in `[]': Undefined configuration parameter 'authconfig' (ArgumentError) from /usr/lib/ruby/site_ruby/1.8/puppet.rb:83:in `[]' from /usr/bin/puppetd:360
--listen オプション使うときには、/etc/puppet/namespaceauth.conf が必要で、authconfig にはこのパスがセットされるはずなんだけど、セットされていないためのエラーっぽい。これは trunk では直ってる。
もうひとつ、puppetrun 実行時のエラー。
$ sudo puppetrun --host kenny.southpark Failed to load ruby LDAP library. LDAP functionality will not be available /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/core_ext/module/introspection.rb:5:in `parent': private method `split' called for :Client:Symbol (NoMethodError) from /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:463:in `const_missing' from /usr/local/bin/puppetrun:343 from /usr/local/bin/puppetrun:335:in `fork' from /usr/local/bin/puppetrun:335 kenny.southpark finished with exit code 1
これは puppetrun に以下の一行を追加すれば直る。
require 'puppet/network/client/runner'