Puppet Agent - sudo として起動

Puppet Agent - sudo として起動

Puppet エージェントを起動する際に問題が発生しています。Puppet マスターがプッシュするのではなく、エージェントが構成をプルするようにしたいので、--onetime パラメータを指定してエージェントを使用します。

私は Debian ホスト上のマスターとエージェントの両方に Puppet バージョン 2.73 を使用しています。

私は、Puppet エージェントの実行に関する各ユーザー アクションを記録する必要がある環境にいるので、Puppet エージェントを起動するには sudo が当然の選択肢のようです。

ただし、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 として実行すると、問題は発生しません。

私はいくつかの Puppet Labs ドキュメントを読みました (今は見つけられません)。そこには、sudo コマンドを使用してエージェントを実行することはできない可能性があると書かれていました。

そこで質問です。sudo を実行して、特権のないユーザーとして Puppet エージェントを実行することは可能ですか? もし可能であれば、これを変更する必要があると仮定すると、sudoers ファイルにどのような変更を加える必要がありますか。

これが不可能な場合は、1) 構成が取得されるように Puppet エージェントを一度に 1 つのホストでのみ実行し、2) このアクションを記録するための代替案を提案していただけますか。

答え1

「一度に 1 つのホスト」という要件がわかりません。Puppet は、一度に複数の Puppet エージェントの実行を提供および記録する機能を完全に備えています。

環境の問題である可能性を排除するには、 を実行しますsudo -i <command>

いずれにせよ、Puppet をプッシュ モードで使用する方が、要求に合っているかもしれません。Puppet エージェント (最初に再構成する必要があります) は、Puppetmaster からの接続をリッスンし、Puppet の実行を開始します。

puppet kickこれは、puppetmaster で実行することで実行できます。

ペーパートレイルは、マスターにアップロードされたクライアントのレポートと、クライアントとマスターの両方のauditdによって生成され、syslogサーバーに記録されます(sudoのログはそれコマンドを発行したユーザーを(信頼性の高い)追跡します。

関連情報