Puppet master 基于策略的自动签名脚本 STDOUT/STDERR 未复制到 master 的日志输出

Puppet master policy-based autosign script STDOUT/STDERR not copied to master's log output

根据 puppet master 文档 here,autosign=[可执行文件路径] 设置引用的可执行文件发出的 STDERR 和 STDOUT 都被复制到 Puppet master 的主日志输出。但是,我无论如何都找不到这个输出。

我的puppet.conf的相关位:

[main]
logdir = /var/log/puppet
log_level = debug

[master]
autosign=/usr/lib/ruby/site_ruby/1.8/autosign.rb

/usr/lib/ruby/site_ruby/1.8/autosign.rb的来源:

#!/usr/bin/env ruby

require 'etc'

ENV['HOME'] = Etc.getpwuid(Process.uid).dir

STDERR.puts "Inside autosign.rb"
STDERR.puts "====================================="

STDERR.puts "=== ENV['HOME'} ====================="
STDERR.puts "#{ENV['HOME']}"

STDERR.puts "=== STDIN ==========================="
ARGF.each do |line|
  STDERR.puts line if line =~ /login/
end

STDERR.puts "=== ARGV[] =========================="
ARGV.each do |b|
    STDERR.puts b
end

#require 'puppet'
#require 'puppet/ssl/certificate_request'

#clientcert = ARGV.pop

#csr = Puppet::SSL::CertificateRequest.from_s(STDIN.read)

retcode = 0
exit retcode

你们中有人成功地从自动签名策略可执行文件中登录了吗? ...或者一般都在使用这个工具?

出于调试目的,您可以使用

在终端中启动独立的主进程
puppet master --no-daemonize --debug --verbose

这应该会向您显示所有相关输出。