Puppetのテストラボを作成しましたが、機能しません。私が開始 puppet agent
ノード上で、証明書を待ちます。
root:~# puppet agent --server xxxx --waitforcert 60 --test
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
サーバー上で、保留中の証明書要求が見つかりました。
root:~# puppet cert --list
root:~#
Masterhttpdログ:
root:~# tail /var/log/puppet/masterhttp.log
[2012-01-06 09:19:17] xxx - - [06/Jan/2012:09:19:17 CET] "GET /production/certificate/xx HTTP/1.1" 404 30
[2012-01-06 09:19:17] - -> /production/certificate/pgw
[2012-01-06 09:19:47] xxx - - [06/Jan/2012:09:19:47 CET] "GET /production/certificate/xx HTTP/1.1" 404 30
[2012-01-06 09:19:47] - -> /production/certificate/pgw
[2012-01-06 09:19:47] xxx - - [06/Jan/2012:09:19:47 CET] "GET /production/certificate/xx HTTP/1.1" 404 30
[2012-01-06 09:19:47] - -> /production/certificate/pgw
[2012-01-06 09:19:47] xxx - - [06/Jan/2012:09:19:47 CET] "GET /production/certificate/xx HTTP/1.1" 404 30
[2012-01-06 09:19:47] - -> /production/certificate/pgw
証明書ファイルが見つかりません。
エージェントがマスターに到達していることを確認したようです。良い第一歩。
次に、他の人が示唆しているように、証明書が署名されていないこと、および証明書を見逃していないことを確認します。
Sudo puppet cert --list --all
そこに表示されない場合は、すべてをクリーンアップして最初からやり直します。
まず、両方のサーバーの日付と時刻が同期していることを確認します。ディストリビューションとNTPクライアントに応じて、ntpd -q -g
のようなものとNTP同期を強制することができます。
次に、パペットマスターでclean
を実行します。
Sudo puppet cert clean <agent hostname>
エージェントで、すべてのSSLファイルをクリーンアップします。
Sudo rm -rf /var/puppet/ssl /var/lib/puppet/ssl/ /var/puppet/ssl
最後に、テストを実行します。
Sudo puppet agent --debug --test --server <master hostname>
うまくいけば、これで問題が解決しない場合は、どこを見ればよいかについての手がかりが得られるはずです。
人形エージェントを次のように開始することをお勧めします
$ puppet agent --server=xxxx --test --debug
このコマンドは、失敗する理由の詳細を提供します。また、完了するまでにさらに時間がかかる場合があります。
証明書があれば、サイドから削除することもできます(それぞれマスターとエージェントで)
puppet --cert --clean your_machine_name
rm -rf /etc/puppet/ssl
Puppetを始めたとき、私は非常によく似た問題に遭遇しました。 --serverオプションは尊重されていませんでした。
'puppet'という名前とマスターボックスのIPを使用してHOSTSファイルにエントリを追加してみてください。
それが機能する場合、次の構文が適切に機能します(少なくともバージョン2.7.5では)
[main]
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
server = puppetmaster.yourdomain.org
pluginsync = true
[agent]
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
server = puppetmaster.yourdomain.org
listen = true