3.4.4.5. パスワードの変更
パスワードはイメージ設定の一部であるため、データベースユーザー (MONGODB_USER
) および admin ユーザーのパスワードを変更するためにサポートされている唯一の方法は、環境変数 MONGODB_PASSWORD
と MONGODB_ADMIN_PASSWORD
をそれぞれ変更することです。
現在のパスワードは、Pod またはデプロイメント設定を Web コンソールで表示するか、CLI で環境変数を一覧表示して表示できます。
$ oc set env pod <pod_name> --list
MongoDB で直接データベースパスワードを変更すると、変数に保存されている値と実際のパスワードが一致しなくなります。データベースコンテナーが起動するたびに、パスワードは環境変数に保存されている値にリセットされます。
これらのパスワードを変更するには、oc set env
コマンドを使用して、関連するデプロイメント設定の任意の環境変数の 1 つまたは両方を更新します。たとえば、テンプレートから作成されたアプリケーションの場合など、複数のデプロイメント設定でこれらの環境変数を使用する場合は、パスワードがすべての場所で同期されるように、各デプロイメント設定の変数を更新する必要があります。これは、すべて同じコマンドで実行できます。
$ oc set env dc <dc_name> [<dc_name_2> ...] \ MONGODB_PASSWORD=<new_password> \ MONGODB_ADMIN_PASSWORD=<new_admin_password>
アプリケーションによっては、アプリケーションの他の部分にパスワード用の他の環境変数があり、それらも一致するように更新する必要があります。たとえば、データベースユーザーのパスワードと一致する必要があるフロントエンド Pod に、より一般的な DATABASE_USER
変数が存在する可能性があります。アプリケーションごとに必要なすべての環境変数に対してパスワードが同期していることを確認してください。同期していないと、トリガーされたときに Pod の再デプロイに失敗する可能性があります。
設定変更トリガー が設定されている場合には、環境変数を更新すると、データベースサーバーの再デプロイメントがトリガーされます。それ以外の場合には、新しいデプロイメントを手動で起動して、パスワードの変更を適用する必要があります。
新規のパスワードが有効になっていることを確認するには、まず、実行中の MongoDB Pod へのリモートシェルセッションを開きます。
$ oc rsh <pod>
bash シェルから、データベースユーザーの新規パスワードを確認します。
bash-4.2$ mongo -u $MONGODB_USER -p <new_password> $MONGODB_DATABASE --eval "db.version()"
パスワードが正しく変更された場合は、以下のような出力が表示されるはずです。
MongoDB shell version: 2.6.9 connecting to: sampledb 2.6.9
admin ユーザーの新規パスワードを確認するには、以下を実行します。
bash-4.2$ mongo -u admin -p <new_admin_password> admin --eval "db.version()"
パスワードが正しく変更された場合は、以下のような出力が表示されるはずです。
MongoDB shell version: 2.6.9 connecting to: admin 2.6.9