初めて人形をセットアップしようとしています。
ポート8140
と22
がufw
を使用して開いていることを確認しました。
サーバーとエージェントの両方が実行されています。エージェントを開始する前に、以下を追加して/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
実行しましたかpuppet agent --test
最初の証明書要求を生成(および送信)するエージェントで?これにより、エージェントがマスターの証明書要求リストに追加されます。
エージェントが証明書を見つけられずに終了することについて不平を言っているだけの場合、それはすでにリクエストを送信していると考えている可能性があります-設定されたパペットSSLディレクトリをバックアップしてから削除することにより、SSLに関する限り、メモリをリセットします(デフォルトでは/var/lib/puppet/ssl
または/etc/puppetlabs/puppet/ssl
)、次にpuppet agent --test
(--debug
および--verbose
本当に確認したい場合)-この実行は、新しい証明書要求を生成していることを出力し、構成済みのマスターに送信する必要があります。
Azure VMを使用していてPuTTYに接続している場合は、デフォルトですべてのポートがブロックされているため、Azureでポート8140を開く必要があります。 VMネットワーキングオプションに移動し、ポート8140の許可ルールを追加します(パペットはポート8140で機能するため)。次に、新規からPuTTYへの接続を試みて、機能します。
エラーメッセージは、何をすべきかを正確に伝えます。ノードの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が生成されます。