Puppet が Foreman にファクトを送信できない - 「tlsv1 アラート 不明 ca」

Puppet が Foreman にファクトを送信できない - 「tlsv1 アラート 不明 ca」

最近更新しましたカテッロ2.2そしてフォアマン今から1.8.1そのため、アップグレードのどこかで Puppet が Foreman に接続できなくなったようです。

> [root@virt5 ~]# puppet agent --test info: 
> Retrieving plugin <snipped>
> err: Could not retrieve catalog from remote server: Error 400 on
> SERVER: Failed when searching for node virt5: Failed to find virt5.
> via exec: Execution of '/etc/puppet/node.rb virt5' returned 1:
> warning: Not using cache on failed catalog err: Could not retrieve
> catalog; skipping run

同じコマンドを puppetmaster で実行すると、次のように表示されます。

[root@foreman certs]# /etc/puppet/node.rb virt5

Foreman にファクトを送信できませんでした: SSL_connect が返されました = 1 errno = 0 状態 = SSLv3 サーバー セッション チケット A を読み取りました: tlsv1 アラート不明 ca

私はコピーしようとしました/etc/pki/katello/certs/katello-default-ca.crthttpdが使用する証明書/etc/pki/ca-trust/source/anchors/を実行しましたupdate-ca-trust extractが、違いはなかったようです。

何かおかしなことを見逃しているに違いないのですが、それが何なのかよく分かりません。

答え1

ここで私が見つけた間違いの 1 つは (ドキュメントではより明確にすべきですが)、Katello が Foreman のように Puppet 証明書を使用すると考えていることですが、実際はそうではありません。

Foreman/Katello ホストで以下を実行します:

capsule-certs-generate --capsule-fqdn "mycapsule.example.com"\ 
                       --certs-tar "~/mycapsule.example.com-certs.tar"

ここで、mycapsule.example.com は他の Puppet マスターです。

そのtarballを解凍し、「puppet-client」証明書RPMをPuppetマスターにコピーしてインストールします。

いくつかのファイルをコピーします:

cp /etc/pki/katello-certs-tools/certs/*-puppet-client.crt /etc/puppet/foreman.crt
cp /etc/pki/katello-certs-tools/private/*-puppet-client.key /etc/puppet/foreman.key
cd /etc/puppet
wget https://katello.mydomain.net/pub/katello-default-ca.crt
chown puppet /etc/puppet/foreman.{crt,key} /etc/puppet/katello*

/etc/puppet/foreman.yaml を次のように設定します。

:url: "https://katello.mydomain.net"
:ssl_ca: "/etc/puppet/katello-default-ca.crt"
:ssl_cert: "/etc/puppet/foreman.crt"
:ssl_key: "/etc/puppet/foreman.key"

それでうまくいくはずです。

関連情報