API によるキーファイルのローテーション
プロジェクトのオートメーション構成を更新することで、キーファイルをプログラムでローテーションできます。
MongoDB Ops Manager APIを使用してキーファイルをローテーションするには、次の手順に従います。
現在の構成を取得します。
auth.newKey設定で使用する新しいキー ファイルを追加します。
PUT
を使用して構成全体を置き換えます。PUT
を使用する必要があります。PATCH
は使用しないでください。
すべてのMongoDBエージェントが新しいキーを使用すると、 MongoDB Ops Managerは auth.key の値をauth.newKeyで指定した新しいキーに置き換え、オートメーション構成からauth.newKeyを削除します。
前提条件
APIへのアクセス権が必要です。 詳しくは、「 API アクセスの設定 」を参照してください。
API キーには、
Project Automation Admin
またはProject Owner
ロールが必要です。認証を有効にする必要があります。
プロジェクト内の少なくとも 1 つのクラスターは、 clusterAuthModeオプションを
keyFile
またはsendKeyFile
に設定して構成する必要があります。プロジェクト内のすべてのクラスターは MongoDB バージョン 4.2 以降を実行している必要があります。
Automation Config API リソースの変数
API リソースは、これらの変数の 1 つ以上を使用します。 これらの API リソースを呼び出す前に、これらの変数を目的の値に置き換えます。
名前 | タイプ | 説明 |
---|---|---|
PUBLIC-KEY | string | API認証情報の公開 API キー。 |
PRIVATE-KEY | string | API 認証情報の プライベート API キー 。 |
<OpsManagerHost>:<Port> | string | MongoDB Ops Manager インスタンスのURL 。 |
GROUP-ID | string | プロジェクト設定からのプロジェクトの一意の識別子。 |
CLUSTER-ID | string | クラスターの一意の識別子です。 |
手順
MongoDB Ops Managerからオートメーション構成を取得して検証します。
構成を取得するには、 automationConfigリソースを使用します。 次の コマンドを発行して、プレースホルダーを Automation Config API リソースの変数に置き換えます。
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --request GET "https://<OpsManagerHost>:<Port>/api/public/v1.0/groups/{PROJECT-ID}/automationConfig?pretty=true" \ --output currentAutomationConfig.json ダウンロードしたオートメーション構成ファイルを検証します。
version
のcurrentAutomationConfig.json
フィールドと Automation Configuration バックアップ ファイルのmms-cluster-config-backup.json
フィールドを比較します。version
値は両方のJSONドキュメントの最後の要素です。 このファイルは、MongoDB Agent を実行しているホスト上の次の場所にあります。Linux と macOS:
/var/lib/mongodb-mms-automation/mms-cluster-config-backup.json
Windows:
%SystemDrive%\MMSAutomation\versions\mms-cluster-config-backup.json
version
値が一致する場合は、現在のバージョンの Automation 構成ファイルを操作します。
ダウンロードしたオートメーション構成ファイルに新しいキー ファイルを追加します。
テキスト エディターで
currentAutomationConfig.json
を開きます。auth.newKeyフィールドを追加する。 このフィールドの値を、MongoDB Ops Manager で使用する新しいキー ファイルに設定します。
注意
以下のサンプル構成は、読みやすくするために切り捨てられています。
{ "auth": { "disabled": "false", "key": "<your-old-key>", "newKey": "<your-new-key>" } }
MongoDB Agent を更新する場合は、この手順を続行する前に「 Agent のバージョンを更新する 」を参照してください。
更新された自動化構成を送信します。
更新されたオートメーション構成を送信するには、 automationConfigリソースを使用します。
更新された構成ドキュメントへのパスを指定して次のコマンドを実行し、プレースホルダーを Automation Config API リソースの変数に置き換えます。
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Content-Type: application/json" --request PUT "https://<OpsManagerHost>:<Port>/api/public/v1.0/groups/{PROJECT-ID}/automationConfig?pretty=true" \ --data @currentAutomationConfig.json
構成の更新に成功すると、API はリクエストが成功したことを示す HTTP 200 OK
ステータス コードを返します。
オートメーション構成の更新が成功したことを確認します。
MongoDB Ops Managerからオートメーション構成を取得し、変更が含まれていることを確認します。 構成を取得するには、次のコマンドを実行して、プレースホルダーを Automation Config API リソースの変数に置き換えます。
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --request GET "https://<OpsManagerHost>:<Port>/api/public/v1.0/groups/{PROJECT-ID}/automationConfig?pretty=true"
配置ステータスをチェックし、目的の状態に達していることを確認します。
配置ステータスを取得するには、 automationStatusリソース を使用します。 次の コマンドを発行して、プレースホルダーを Automation Config API リソースの変数に置き換えます。
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --request GET "https://<OpsManagerHost>:<Port>/api/public/v1.0/groups/{PROJECT-ID}/automationStatus?pretty=true"
processes
配列内のすべてのlastGoalVersionAchieved
フィールドの値がgoalVersion
フィールドと一致していることを確認します。 配置ステータスの詳細については、 「 最新プランのオートメーション ステータスを取得する 」を参照してください。