まず最初に、serverfaultに関して非常によく似た質問がここにあることは知っていますが、それでも私の問題の解決にはなりません。
したがって、私のセットアップは次のとおりです。Ubuntu14.04 LTSとフォアマン1.6を備えたパペットマスター3.4.3を実行するサーバーが1台あります。クライアントは、puppetエージェント3.7.0を実行しているWindows 7コンピューターです。
自動実行は正常に機能します。Run Puppet
ボタンを機能させるのに問題があります。私はいつもこのメッセージでこの赤いオーバーレイを受け取ります:
failed to execute puppetrun: ERF12-4252 [ProxyAPI::ProxyException]: Unable to execute Puppet run ([RestClient::InternalServerError]: 500 Internal Server Error) for proxy https://puppetmaster:8443/puppet
私は the wiki の指示に従い、以前は存在しなかったauth.confファイルをノードに追加しました。それをC:\ProgramData\PuppetLabs\puppet\etc\
に置きます。ここには、puppet.confファイルが存在します。また、空のnamespaceauth.confをこのディレクトリに追加しました。ノードとサーバーで、listen = trueをアクティブにしました。 sudoersファイルにforeman-proxyを追加しました。ノードサービスとパペットマスターを数回再起動しました。ここで、私が見つけた他のすべての投稿で「実行中の操り人形ボタンができました」と言っています。私を除いてそれは働いていません。
私が見つけた唯一のログエントリは/var/log/foreman-proxy/proxy.logでした:
E, [2014-10-20T17:50:53.051681 #1119] ERROR -- : Failed puppet run: Check Log files
見つかったすべてのログファイルを確認しましたが、このエラーの内容に関する詳細情報は見つかりませんでした。編集:2番目のwikiへのリンクを追加しました編集: フォアマンエラーコード もチェックしましたが、残念ながら、取得したコードには情報がリンクされていません。 (はい、私はプロキシ通信エラーをチェックしました-ありません)
ついに実行に成功しました!エラーコード(ERF12-4252
)はさまざまなエラーに対応しているようです。コンソールで異なるエラーを返す構成の誤りがありましたが、Foremanは常に同じメッセージを報告していました。
私の問題を解決する方法は、コマンドラインからpuppet kick <mynode>
コマンドを使用することでした。そこで、クライアント証明書の名前にタイプミスがあり、ホスト名に適合しないことがわかりました。
Windowsクライアントでも同じことを行いました(puppet windowsサービスを停止し、puppet agent --debug --no-daemonize
を使用してpuppetコマンドラインウィンドウでエージェントを開始して、エージェントで何かが発生したかどうかを確認しました)。
これは、auth.confファイルの正しいディレクトリを見つけるのにも役立ちました。 Windowsにエージェントをインストールする場合、auth.confファイルはインストールディレクトリ(通常はC:\Program Files\PuppetLabs\Puppet\puppet\conf
)に配置されますが、C:\ProgramData\PuppetLabs\puppet\etc
!
したがって、ファイルをこの場所にコピーし、必要な行を追加するとうまくいきました。
path /run
allow puppetmaster.dev.nextgen.local
その後、私はフォアマンで古いホストを削除し、エージェントで新しい証明書を作成し、puppetmasterで署名し、フォアマンで新しいホストを追加するだけで済みました。
それは私のために働きました私はpuppetsshソースを選びました http://theforeman.org/manuals/1.11/index.html#4.3.6Puppet
上記のリンクから、コンテンツpuppetsshの下の1つの指示に従って、ファイルの次の行を編集します。
/etc/foreman-proxy/settings.d/puppet
:puppetssh_command: /usr/bin/puppet agent --onetime --no-usecacheonfailure
に変換する
:puppetssh_command: /usr/bin/puppet agent --test
今それは魅力のように動作しますそれがうまくいかなかった場合は気軽に返信してください
「パペットを実行」を機能させるためのさまざまなメソッドの設定方法に関するドキュメントは次のとおりです。
現在、リモート実行は「MCollective」、「Puppetssh」、および「puppetrun(またはキック)」(非推奨)を介してセットアップできます。