API によるオートメーション パスワードのローテーション
プロジェクトのオートメーション構成を更新することで、オートメーション ユーザーのパスワードをプログラムでローテーションできます。
このページでは、 MongoDB Ops Manager APIを使用してオートメーションユーザーのパスワードをローテーションするための次のプロセスについて説明します。
auth.newAutoPwdを設定し、現在のパスワードと共にauth.autoPwdを残ります。
ターゲットの状態を待ちます。
auth.newAutoPwdはauth.autoPwdパスワードを自動的にコピーします。
このオプションは、 auth.autoAuthMechanismsのオートメーションの認証メカニズムの 1 つとして SCRAM-SHA-1 または SCRAM-SHA-256 を含めている場合にのみ設定できます。
前提条件
APIへのアクセス権が必要です。 詳しくは、「 API アクセスの設定 」を参照してください。
API キーには、
Project Automation Admin
またはProject Owner
ロールが必要です。認証を有効にする必要があります。
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 構成ファイルを操作します。
現在のオートメーション構成ファイルから新しいオートメーション構成ファイルを作成します。
次のコマンドの変数を置き換えて実行します。
sed -e "/autoPwd/a\\ \"newAutoPwd\" : \"<NEW_OPS_MANAGER_AUTOMATION_PASSWORD>\"," -e 's/ "version" : <CURRENT_AUTOMATION_CONFIGURATION_VERSION>/ "version" : <NEW_AUTOMATION_CONFIGURATION_VERSION>/' currentAutomationConfig.json > modifiedAutomationConfig.json
名前 | 説明 |
---|---|
<NEW_OPS_MANAGER_AUTOMATION_PASSWORD> | 新しいオートメーション パスワードを指定します。 |
<CURRENT_AUTOMATION_CONFIGURATION_VERSION> | 現在のオートメーション バージョンを指定します。 現在のオートメーション バージョンを確認するには、 「 オートメーション構成を取得する 」を参照してください。 |
<NEW_AUTOMATION_CONFIGURATION_VERSION> | 現在のオートメーション バージョンを 1 ずつ指定します。 たとえば、現在のオートメーション バージョンが 4 の場合、新しいオートメーション バージョンは5 になります。 |
更新された自動化構成を送信します。
更新されたオートメーション構成を送信するには、 automationConfigリソースを使用します。
更新された構成ドキュメントを含む、前のステップで作成されたmodifiedAutomationConfig.json
ファイルを指定して、次のコマンドを発行します。 プレースホルダーを 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 '@modifiedAutomationConfig.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"
注意
オートメーション バージョンは自動的に 2 回増加します。 たとえば、新しいオートメーション バージョンを 5 としてプッシュした場合、すべての変更後の新しいオートメーション バージョンは 7 になります。 The Automation updates the Automation user password on all managed MongoDB Server deployments.
配置ステータスをチェックし、目的の状態に達していることを確認します。
配置ステータスを取得するには、 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
フィールドと一致していることを確認します。 配置ステータスの詳細については、 「 最新プランのオートメーション ステータスを取得する 」を参照してください。