人形のホスト名の問題


10

オンラインで検索したところ、他の数人が他のリスト/ボードでこの問題を抱えていることがわかりました。マスターサーバーで証明書に署名した後、2回目にsudo puppetd ​​--waitforcert 60 --testを実行すると、このエラーが発生します-

notice: Got signed certificate
warning: Certificate validation failed; considering using the certname configuration option
err: /File[/var/lib/puppet/lib]: Failed to generate additional resources during transaction: Certificates were not trusted: hostname was not match with the server certificate

どのような問題があり、どのように修正するかを理解できません。だから私は尋ねる理由です。

LAN上の2台のサーバーにパペットを設定しています。puppetmasterは「puppet」、その他のサーバーは「puppetclient」という名前です。私はpuppetclientの/ etc / hostsにパペットを入れました。

hostname -fを実行すると、それぞれのサーバー上のpuppetとpupperclientが表示されます。他に何を試したらよいかわかりません。誰か洞察力がありますか?

回答:


9

ホストが "puppet"以外の名前が付けられたときに、puppetmaster証明書のように聞こえます。証明書を再作成すれば、問題ないはずです。

証明書に格納されている名前は、クライアントが接続するように(正確に)構成した名前と一致する必要があります。たとえば、「puppet.domain.com」に接続するようにクライアントを設定した場合、証明書の名前が「puppet」の場合はエラーが発生し、その逆の場合も同様です。


これは数時間前に起こりました。完全修飾ドメイン名が必要でした。
ピートターマート2009年

クライアントに.localを追加することでうまくいきました。ホスト名-fで表示されなかったとしても。ありがとう!

1
おそらくもっと良い方法がありますが、私にとってはrm -rf /var/lib/puppet/ssl、puppetmasterを再起動してCA証明書を再生成しました
Peter Sankauskas

6

puppetmasterにDNS CNAMEを使用したい場合は、以下を使用してpuppetmasterを起動できます。

puppetmaster --certname cname.domain.org

cname.domain.orgデフォルトの完全修飾ドメイン名の代わりにpuppetmasterを使用します。


2

--certname cname.domain.orgフラグオプションは、(アマゾンEC2上で)私のためのトリックを行っているように見えました


1

あなたはfacter(facter fqdn)にホスト名が何であるかを尋ね、それがあなたが期待するものと一致しているかどうかを見ることができます。また、(デフォルトで)/ var / lib / puppet / ssl /を見て、証明書が問題である可能性のある正しいホスト名を持っていない場合は、証明書がどのように見えるかを確認してください。puppetはすべての通信をHTTPS経由で行うため、解像度とホストの命名にかなり敏感です。


1

指定されたクライアントとサーバーにPuppetをインストールする前に、/ etc / resolv.confファイルを確認し、「検索」行の最初のドメインエントリがPuppetを実行するドメインであることを確認します。例えば:

検索my.puppetdomain.com my.public.domain.com

ネームサーバー192.168.1.1ネームサーバーxxx.xxx.1.1

Puppetのインストール段階では、Puppetサーバーは/etc/resolv.confの最初の検索エントリに基づいて証明書を生成します。私はこれを難しい方法で見つけました。パペットノードで証明書関連のエラーが発生した場合は、次の手順を実行します。

1)/etc/resolv.confを編集し、「検索」行にリストされている最初のドメインが、Puppetを実行するドメインを反映していることを確認します。

2)puppetをアンインストールします(/ etc / puppetディレクトリはそのままにしておきます)。

3)rm -rf / var / lib / puppet

4)Puppetを再インストールします(これにより、新しい/ var / lib / puppetディレクトリが生成されます)。

5)Puppetサーバーでこれを実行する場合は、/ usr / sbin / puppetmasterd --mkusersを実行します(または、/ usr / local / sbin / puppetmasterd --mkusersを実行します)。これにより、適切なドメイン名を使用した新しい内部証明書を含め、/ var / lib / puppet内に必要なすべてのファイルが生成されます。

6)Puppetクライアントでこれを実行する場合は、-waitforcertフラグを有効にして、詳細モードでPuppetを起動します 。puppetd ​​-server .puppetdomain.com --waitforcert 60 --test この手順により、証明書要求がPuppetサーバーに送信されます。

7)Puppetサーバーで、待機中の証明書をリストします。

puppetca --list

リクエストを行っているPuppetクライアントのホスト名が表示されます。

puppetclient1.puppetdomain.com

8)Puppetサーバーから、リストされたPuppetクライアントの証明書に署名します。

puppetca --sign puppetclient1.puppetdomain.com

その後、完了です。

HTH...。


0

puppetとpuppetclientはどちらもDNSで解決されますか?そうでない場合は、/ etc / hostsファイルを編集して、IPとホスト名をマップできます。IIRC、これはクライアントでのみ行う必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.