Puppetエージェントにマスターを認証させるのに問題があります。
エージェントでは、最初にSudo puppet agent --test
を行いました
info: Creating a new SSL key for m-agent-2
info: Caching certificate for ca
info: Creating a new SSL certificate request for m-agent-2
info: Certificate Request fingerprint (md5): 43:30:57:53:5B:20:F7:12:CD:94:59:17:12:28:68:A4
その後、マスターでSudo puppet cert list
を行い、
"m-agent-2" (43:30:57:53:5B:20:F7:12:CD:94:59:17:12:28:68:A4)
それから私はSudo puppet cert sign m-agent-2
をしました。
notice: Signed certificate request for m-agent-2
notice: Removing file Puppet::SSL::CertificateRequest m-agent-2 at
'/var/lib/puppet/ssl/ca/requests/m-agent-2.pem'
それから私はSudo puppet agent --test
をしました。
info: Caching certificate for m-agent-2
err: Could not retrieve catalog from remote server: Server hostname 'puppet' did not match server certificate; expected master-node-1
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
err: Could not send report: Server hostname 'puppet' did not match server certificate; expected master-node-1
Confファイルのcertname = master-node-1
と[main]
の両方のセクションにある[master]
の両方の行が含まれています。マスターの証明書を再生成しました
Sudo find $(puppet master --configprint ssldir) -name "$(puppet master --configprint certname).pem" -delete
Sudo puppet master --no-daemonize --verbose
また、/ etc/hostsファイルには10.20.32.10 learn.localdomain learn puppet.localdomain puppet
行が含まれており、エージェントからpuppetとpuppet.learnの両方にpingを実行できます。
しかし、私はまだ同じ問題を抱えています。これを修正する方法はありますか?または、puppetの認証をまとめて無効にします。マスターノードとスレーブノードの両方がUbuntu12.04を実行しており、私はpuppet2.7.11を実行しています。どんな助けでも大歓迎です。
クライアントは、マスターがpuppet.conf
のpuppet
構成に従って、ホスト名server
を持つことを期待しています。これがデフォルトであるため、server
がない場合設定すると、puppet
を使用します。マスターのSSL証明書はその名前に対して有効である必要があります。そうでない場合、クライアントは接続を拒否します。
通常、マスターは、サブジェクト代替名を使用して、自身のホスト名とpuppet
ホスト名に有効な証明書を生成します。ただし、マスターのpuppet.conf
に明示的なcertname
がある場合はこれを上書きします。 puppet cert --list master-node-1
をチェックして確認します-証明書の拇印の後に(alt names: "puppet")
のようなものが表示されているはずです。
クライアントがserver
構成を使用して実際のホスト名を指すようにするか、サーバーの証明書をホスト名puppet
に対して有効にすることで、これを修正します。