web-dev-qa-db-ja.com

Puppetエージェントをマスターに接続できません

初めて人形をセットアップしようとしています。

ポート814022ufwを使用して開いていることを確認しました。

サーバーとエージェントの両方が実行されています。エージェントを開始する前に、以下を追加して/etc/puppet/puppet.confを編集しました。

[agent]
server=174.89.xyz.abc

上記の/etc/puppetlabs/puppet/puppet.confも実行しましたが、両方が必要かどうかわからないため、puppet --versionを実行すると、4.10が返されます。

エージェントサーバーのIPはマスターサーバーのIPに設定されます。

ラップトップをポイントしたエージェントからのリクエストが表示されることを期待してpuppet cert listを実行しましたが、リクエストが表示されません。

エージェントが接続しない理由を理解するために次に何をすべきかわかりません。

編集:

私はpuppet agent --testを実行しました。

Info: Creating a new SSL key for ip-172-00-00-00.us-west-2.compute.internal
Error: Could not request certificate: Failed to open TCP connection to puppet:8140 (getaddrinfo: Name or service not known)
Exiting; failed to retrieve certificate and waitforcert is disabled

ラップトップがDMZにあり、エージェントサーバーから正常にpingできることを確認しました。


更新:

@DylanKnollは、サーバーのデフォルト値が人形であることを指摘したため、IPアドレスを受け入れない場合があります。 here にエイリアスされたパペットに関するドキュメントをさらに見つけました。次に、上記の構成を削除し、この行を/etc/hostsに追加しました。

174.89.000.000 puppet

この変更後、受け取ったエラーは変更されました。だから彼らはつながりを持っているようです。私はまだIPアドレスを使用しているので、適切なssl接続を取得するにはドメイン名が必要になるでしょう(?)

エラーメッセージ:

Error: Could not request certificate: The CSR retrieved from the master does not match the agent's public key.
CSR fingerprint: BF:43:71:72:86:45:76:E9:34:20:24:71:B6:0C:88:25:3A:67:5E:C4:84:D5:E0:22:C9:1A:9E:FD:98:C1:0D:3C
CSR public key: Public-Key: (4096 bit)
Modulus:
    00:b7:bd:de:db:24:50:01:95:ad:10:af:83:6e:c5:
    # lines removed
    35:e9:17:40:46:09:31:96:d6:68:ca:15:9e:be:41:
    85:6c:eb
Exponent: 65537 (0x10001)

Agent public key: Public-Key: (4096 bit)
Modulus:
    00:b0:21:80:23:d5:a5:26:37:ea:68:02:99:d5:85:
    # lines removed
    3d:92:e1
Exponent: 65537 (0x10001)

To fix this, remove the CSR from both the master and the agent and then start a puppet run, which will automatically regenerate a CSR.
On the master:
  puppet cert clean ip-172-31-27-12.us-west-2.compute.internal
On the agent:
  1a. On most platforms: find /home/ubuntu/.puppetlabs/etc/puppet/ssl -name ip-172-31-27-12.us-west-2.compute.internal.pem -delete
  1b. On Windows: del "\home\ubuntu\.puppetlabs\etc\puppet\ssl\certs\ip-172-31-27-12.us-west-2.compute.internal.pem" /f
  2. puppet agent -t
1

実行しましたかpuppet agent --test最初の証明書要求を生成(および送信)するエージェントで?これにより、エージェントがマスターの証明書要求リストに追加されます。

エージェントが証明書を見つけられずに終了することについて不平を言っているだけの場合、それはすでにリクエストを送信していると考えている可能性があります-設定されたパペットSSLディレクトリをバックアップしてから削除することにより、SSLに関する限り、メモリをリセットします(デフォルトでは/var/lib/puppet/sslまたは/etc/puppetlabs/puppet/ssl)、次にpuppet agent --test--debugおよび--verbose本当に確認したい場合)-この実行は、新しい証明書要求を生成していることを出力し、構成済みのマスターに送信する必要があります。

2
Shane Madden

Azure VMを使用していてPuTTYに接続している場合は、デフォルトですべてのポートがブロックされているため、Azureでポート8140を開く必要があります。 VMネットワーキングオプションに移動し、ポート8140の許可ルールを追加します(パペットはポート8140で機能するため)。次に、新規からPuTTYへの接続を試みて、機能します。

0
Tanuj Das

エラーメッセージは、何をすべきかを正確に伝えます。ノードのSSLフォルダーをクリアします。

rm -rf /etc/puppetlabs/puppet/ssl

注:これにより、すべてのパペットSSL証明書、CSRなどが削除されます。そのため、サーバーではなくノードでのみ削除してください。

次に、puppetmasterからCSRを削除します。

Sudo /opt/puppetlabs/bin/puppet cert clean <hostname>

その後、ノードで別のパペットを実行します。

Sudo /opt/puppetlabs/bin/puppet agent -tv

これにより、新しいCSRが生成されます。

0
mzhaase