だから、私は既存のサーバーを置き換えるために新しいサーバーを立ち上げています。簡単でしょう?古い証明書を取り消し、新しい証明書を作成してください。ここに私が行き詰まっているループがあります:
サーバー名、証明書のフィンガープリント、ドメインを編集しました。以下に示すサーバーは次のとおりです。
新しいビルドについて
[root@slave2 ~]# puppet agent -t
Error: Could not request certificate: The certificate retrieved from the master does not match the agent's private key.
Certificate fingerprint: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:2F:F1
To fix this, remove the certificate from both the master and the agent and then start a puppet run, which will automatically regenerate a certficate.
On the master:
puppet cert clean slave2.example.com
On the agent:
rm -f /var/lib/puppet/ssl/certs/slave2.example.com.pem
puppet agent -t
Exiting; failed to retrieve certificate and waitforcert is disabled
これは、古い名前を使用する新しいサーバーであるため、予測可能で完全に予想されます。今マスターに:
[root@master1 ~]# puppet cert clean slave2.example.com
Notice: Revoked certificate with serial 154
削除される主要なファイルについては何もないことに注意してください。彼らがいないからです。証明:
[root@master1 ~]# ls /var/lib/puppet/ssl/ca/signed/slave1.example.com.pem
/var/lib/puppet/ssl/ca/signed/slave1.example.com.pem
[root@master1 ~]# ls /var/lib/puppet/ssl/ca/signed/slave2.example.com.pem
ls: cannot access /var/lib/puppet/ssl/ca/signed/slave2.example.com.pem: No such file or directory
わかりました。スレーブに戻って、.pemファイルを削除し、puppetエージェントを再度実行して、手順を完了します。
[root@slave2 ~]# rm -f /var/lib/puppet/ssl/certs/slave2.example.com.pem
[root@slave2 ~]# puppet agent -t
Info: Caching certificate for slave2.example.com
Error: Could not request certificate: The certificate retrieved from the master does not match the agent's private key.
Certificate fingerprint: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:2F:F1
To fix this, remove the certificate from both the master and the agent and then start a puppet run, which will automatically regenerate a certficate.
On the master:
puppet cert clean slave2.example.com
On the agent:
rm -f /var/lib/puppet/ssl/certs/slave2.example.com.pem
puppet agent -t
Exiting; failed to retrieve certificate and waitforcert is disabled
...そして、結果に変化はなく、最初から戻ってきました。
最後の健全性チェック:
[root@master1 ~]# puppet cert list -a | grep -i slave2
...そして一致するものがありません。
何が悪いのですか?
補遺:
私はそれがマスターにあると信じる傾向がありますが、正確にどのようになっているかはわかりません。理由は次のとおりです。
[root@master1 ~]# puppet cert clean slave2.example.com
Notice: Revoked certificate with serial 154
[root@master1 ~]# puppet cert clean slave2.example.com
Notice: Revoked certificate with serial 154
[root@master1 ~]# puppet cert clean slave2.example.com
Notice: Revoked certificate with serial 154
[root@master1 ~]# puppet cert clean slave2.example.com
Notice: Revoked certificate with serial 154
[root@master1 ~]# puppet cert clean slave2.example.com
Notice: Revoked certificate with serial 154
証明書がなくなったため、初回以降は失敗しませんか?
Redditorは、問題を解決したと思われる詳細な手順を提供しました。 3つの重要な点は次のとおりです。
puppet agent -t --server master1.example.com
物事のその組み合わせは、証明書の問題を乗り越えました。
puppet ca
は廃止予定であり、機能しない可能性がありますが、お試しください:
puppet ca destroy slave2.example.com
また、/var/lib/puppet/ssl/ca/requests
でも、保留中の要求証明書のディレクトリは手動でpuppet cert list -a
は何も表示していません。実際には、ls -lRa /var/lib/puppet/ssl/
マスターで、念のため、slave2証明書を検索します。