木偶代理 – 启动为sudo

我有问题让我的Puppet代理启动。 我将使用带有–onetime参数的代理程序,因为我希望代理程序可以取消其configuration,而不是Puppet主推送。

我在Debian主机上为master和agent使用Puppet 2.73版本。

我所处的环境中,每个用户对于木偶代理执行的行为都必须logging下来,所以sudo似乎是启动木偶代理的明显select。

但是,启动Puppet代理作为sudo,我收到一些错误:

user@puppetagent$ sudo puppet agent --onetime /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/hostname /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/hostname /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/dnsdomainname /usr/lib/ruby/vendor_ruby/puppet/util.rb:215: command not found: /bin/hostname /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s /usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s Could not prepare for execution: could not create PID file: /var/run/puppet/agent.pid 

当我执行与root相同的操作时,没有问题。

我读了一些木偶实验文档(现在我找不到),提到用sudo命令运行代理可能是不可能的。

所以我的问题:是否有可能通过运行sudo运行puppet代理作为非特权用户? 如果是这样,我必须对sudoers文件做出什么样的改变,假设这是需要修改的。

如果这是不可能的,任何人都可以提出一些替代方法:1)一次只在一台主机上运行木偶代理,这样configuration就被拉下来,2)logging下这个动作。

我没有得到“一次一个主机”的要求。 木偶是完全能够服务和录制多个木偶代理运行在一个时间。

只要排除这是一个环境问题,运行sudo -i <command>

无论如何,在push模式下使用Puppet可能更适合您的需求。 傀儡代理(首先需要重新configuration)将听取傀儡主持人的联系,从而启动木偶游戏。

你可以通过puppet kick

纸path是由客户端的报告生成的,该报告上传到主服务器,并在auditd(在客户端和主服务器上)login到系统日志服务器(sudo的日志logging不可靠),以跟踪您发出命令。