web-dev-qa-db-ja.com

インベントリを使用してセットアップされた複数のパペットマスター

1つのパペットマスターがCAとして機能する複数のパペットマスターを設定できました。クライアントはこのCAサーバーから証明書を取得できますが、指定されたパペットマスターを使用してマニフェストを取得します。詳細については、この質問を参照してください。 複数の操り人形マスター 。ただし、これを正しく機能させ、エラーが発生するために私がしなければならないことがいくつかあります。

まず、指定されたpuppet-master(PM)に接続しているpuppet-client(PC)のインベントリを機能させるには、PM1のCA証明書をPM2caディレクトリにコピーする必要がありました。私はこのコマンドを実行しました:

scp [email protected]:/var/lib/puppet/ssl/ca/ca_cr*.pem  [email protected]:/var/lib/puppet/ssl/ca/.

それが済んだら、PM2のrack.confVHファイルのSSLCertificateChainFile, SSLCACertificateFile & SSLCARevocationFileセクションのコメントを解除することができました。これを行うと、在庫が機能し始めました。これは物事を行うための許容できる方法に聞こえますか?

次に、puppet.confファイルで、クライアント用に指定されたPMサーバー、たとえばserver = puppet-master2.test.netを設定しています。より良い方法がない限り、これは次のようになります。 PC1はPM1と通信し、PC2はPM2と通信します。これでエラーが発生します。PC2が最初にPM1でCAに証明書を要求すると、証明書が表示され、次に証明書に署名します。 PM1のCA。次に、PC2(puppet.confにserver = puppet-master2.test.netがある)でpuppet agent --testを実行すると、次のエラーが発生します。

Warning: Unable to fetch my node definition, but the agent run will continue:
Warning: Error 403 on SERVER: Forbidden request: puppet-master2.test.net(10.1.1.161) access to /certificate_revocation_list/ca [find] at :112

ただし、PC2 puppet.confファイルを変更し、server = PM1を指定し、puppetエージェントを再実行すると--test、エラーは発生しません。その後、puppet.confファイルの変更をserver = PM2に戻すことができ、すべてが正常に実行されているように見えます。

クライアントから/ certificate_revocation_list/*へのリクエストに対して、PM2に何らかのProxyPassMatchを設定し、それらをPM1にリダイレクトする必要がありますか?または、どうすればこのエラーを修正できますか?

乾杯、オリ

2
Oli

それが済んだら、PM2のrack.confVHファイルのSSLCertificateChainFile, SSLCACertificateFile & SSLCARevocationFileセクションのコメントを解除することができました。これを行うと、在庫が機能し始めました。これは物事を行うための許容できる方法に聞こえますか?

それを行う必要はありません-失効リストとルート証明書はすでにセカンダリマスターにあるはずです。 PM2で次のファイルの場所を試してください。

SSLCertificateChainFile /var/lib/puppet/ssl/certs/ca.pem
SSLCACertificateFile    /var/lib/puppet/ssl/certs/ca.pem
SSLCARevocationFile     /var/lib/puppet/ssl/crl.pem

次に、puppet.confファイルで、指定されたPMサーバーをクライアントに設定しています(例:server = puppet-master2.test.net)。より良い方法がない限り、これは私の本番環境でどのように機能するか。

どの人形バージョンを使用していますか? 3.0のSRVレコード機能は、この問題に対する優れたソリューションであり、クライアントが選択できるマスターのセットを、重みと優先順位とともに提供できます。

クライアントから/ certificate_revocation_list/*へのリクエストに対して、PM2に何らかのProxyPassMatchを設定し、それらをPM1にリダイレクトする必要がありますか?または、どうすればこのエラーを修正できますか?

これはauth.confの悪いデフォルトです-プロキシされた接続は認証されません、そしてデフォルトはCRL(機密ではない)の認証を強制することです。これをPM1のauth.confに追加します。

path /certificate_revocation_list
auth any
method find
allow *
1
Shane Madden