3.4.4.5. 更改密码
密码是镜像配置的一部分,因此唯一支持的为数据库用户(MONGODB_USER
)和 admin 用户更改密码的方法是分别更改环境变量 MONGODB_PASSWORD
和 MONGODB_ADMIN_PASSWORD
。
您可以通过在 web 控制台中查看 pod 或部署配置,或通过 CLI 列出环境变量来查看当前的密码:
$ oc set env pod <pod_name> --list
直接在 MongoDB 中更改数据库密码会导致变量中保存的值与实际密码不匹配。每当数据库容器启动时,它会将密码重置至环境变量中存储的值。
要更改这些密码,使用 oc set env
命令为相关的部署配置更新一个或多个所需的环境变量。如果多个部署配置使用这些环境变量,例如从模板创建应用程序时,您必须更新每个部署配置上的变量,以便密码可在所有方面同步。这可以在同一命令中完成:
$ 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 的远程 shell 会话:
$ oc rsh <pod>
在 bash shell 中验证数据库用户的新密码:
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