web-dev-qa-db-ja.com

Puppetクライアントがマスターに接続されていません-SSL接続エラー

パペットマスターとエージェントを同じマシンにインストールしました。クライアントを起動すると、次のエラーメッセージが表示されます。

puppet agent --server=agent.com --no-daemonize --debug



err: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed.  This is often because the time is out of sync on the server or client
2

/ etc/hostsにエントリを作成してみてください

127.0.0.1 localhost.localdomain localhost puppet

puppetagentコマンドの--server引数を削除します。

1
dmourati

次を発行して、パペットマスターの [〜#〜] fqdn [〜#〜] を見つけます。

# openssl x509 -noout -subject -in /var/lib/puppet/ssl/ca/ca_crt.pem
subject= /CN=Puppet CA: Host.domain.com

次の出力(存在する場合)と比較します。

# puppet cert list --all

puppetmasterポート(/etc/hosts)でリッスンしているIPを指すエントリを8140ファイルに追加します。

192.168.124.2  Host.domain.com Host

使用するIPを見つけるには、リッスンしているプロセスを知る必要があります。これは、スタンドアロンのpuppetmasterまたはApache + passengerインストールの場合は異なります。次を使用できます。

netstat -an | grep 8140.*LISTEN

/etc/puppet/puppet.confファイル、特にserver=エントリを確認してください。これは、上記のFQDNを指している必要があります。

このlocalhostを見つけたくない場合を除いて、puppetmasterは使用しないでください。

pupppet agentを開始する前に、次の問題を発行します。

# puppet agent --test --waitforcet 2

これは、CSRをパペットマスターCAに送信し、署名されるのを待つようにエージェントに指示します。

を使用して確認

# puppet cert --list

CSRに署名するための保留中。署名する:

# puppet cert sign Host.domain.com

人形エージェントがコンパイルされたカタログを受け取り、それを適用するのを見てください。その後、エージェントを起動して起動スクリプトに追加する準備が整いました。

10
dawud

「本による」証明書の再生成がQで説明されている状況を依然として生成するケースを解決するために、/etc/puppet/puppet.confに次のセットがあることがわかりました。

[master]
certname=masterhost.domain.com

[agent]
certname=agenthost.domain.com

(ここで、masterhost.domain.comはパペットマスターのFQDNであり、agenthost.domain.comはエージェントのFQDNです)

IMOこれは、同じホストで両方を実行している場合、特にserver=masterhost.domain.comを設定したばかりではないように思われる場合に、パペットがマスターの名前とエージェントの名前を確実に認識できるようにするためのかなり明確な方法です。競合を回避するのに十分です。

/etc/hostsにパペットマスターのDNを追加する提案された解決策が見つからなかったので(すでにDNSエイリアスとして持っていました)、それが私の場合に役立つかどうかはわかりません。

0
zagrimsan