4.2版中的新功能。
MongoDB支持在配置文件中使用扩展指令来加载外部来源的值。扩展指令可以加载特定配置文件选项的 值 或加载整个配置文件。扩展指令有助于掩盖机密信息,例如安全证书和密码。
__rest
扩展,则在Linux / macOS上,对配置文件的读取访问权限必须仅限于运行mongod
/ mongos
进程的用户。__exec
扩展名,则在Linux / macOS上,对配置文件的写访问权限必须仅限于运行mongod
/ mongos
进程的用户
。要使用扩展指令,必须使用--configExpand
完整的扩展指令列表指定
命令行选项:
如果省略该
--configExpand
选项,或者未指定配置文件中使用的扩展指令的完整列表,则mongod
/ mongos
返回错误并终止。您只能--configExpand
在命令行上指定
选项。
__rest
扩展指令¶该__rest
扩展指令负荷从一个配置文件值REST
的端点。__rest
支持在配置文件中加载特定值或加载整个配置文件。
以下配置文件使用
__rest
扩展指令net.tls.certificateKeyFilePassword
从外部REST
端点加载设置值:
以下配置文件使用
__rest
扩展指令从外部REST
端点加载配置文件。扩展指令及其选项必须是配置文件中唯一指定的值。
__exec
扩展指令¶所述__exec
膨胀指令加载来自一个外壳或终端命令配置文件的值。__exec
支持在配置文件中加载特定值或加载整个配置文件。
以下示例配置文件使用
__exec
扩展指令net.tls.certificateKeyFilePassword
从shell或终端命令的输出中加载设置值:
以下示例配置文件使用
__exec
扩展指令从shell或终端命令的输出中加载配置文件。该__exec
扩展指令及其选项必须是在配置文件中指定的唯一值。
__rest
¶该__rest
扩展指令负荷从一个配置文件值REST
的端点。__rest
支持在配置文件中加载特定值或
加载整个配置文件。的mongod
/ mongos
然后开始使用外部来源的值作为其配置的一部分。
该__rest
扩展指令的语法如下:
要REST
为一个或多个特定配置文件设置指定端点:
要REST
为整个配置文件指定一个端点:
如果通过REST
端点指定整个配置文件,则扩展指令及其选项必须是配置文件中指定的唯一值。
__rest
包含以下字段:
领域 | 类型 | 描述 |
---|---|---|
__休息 | 串 | 必需 URL向 对于非本地主机 如果 对于localhost |
type |
串 | 可选控制如何 可能的值为: |
trim |
串 | 可选指定whitespace 直接
__rest
修剪任何开头或结尾的空白,特别是出现的
,,,,,和
。默认为,或不修剪。" " "\r" "\n" "\t" "\v" "\f" none |
消化 | 串 | 可选的。扩展结果的SHA-256摘要。 如果指定,则还必须指定digest_key。 |
摘要密钥 | 串 | 可选的。用于计算SHA-256 摘要的密钥的十六进制字符串表示形式。 如果指定,则还必须指定摘要。 |
注意
有关示例,请参见使用__rest扩展指令。
__exec
¶所述__exec
膨胀指令加载来自一个外壳或终端命令的输出配置文件的值。
__exec
支持在配置文件中加载特定值或加载整个配置文件。的
mongod
/ mongos
然后开始使用外部来源的值作为其配置的一部分。
该__exec
扩展指令的语法如下:
要为一个或多个特定配置文件设置一个shell或终端命令:
要为整个配置文件指定一个shell或终端命令:
如果通过终端或外壳程序命令指定整个配置文件,则扩展指令及其选项必须是配置文件中唯一指定的值。
__exec
包含以下字段:
领域 | 类型 | 描述 |
---|---|---|
__exec |
串 | 必需 在Linux和OSX主机上,执行是通过POSIX处理的 |
type |
串 | 可选控制如何 可能的值为: |
trim |
串 | 可选指定whitespace 直接
__exec
修剪任何开头或结尾的空白,特别是出现的
,,,,,和
。默认为,或不修剪。" " "\r" "\n" "\t" "\v" "\f" none |
消化 | 串 | 可选的。扩展结果的SHA-256摘要。 如果指定,还必须指定digest_key |
摘要密钥 | 串 | 可选的。用于计算SHA-256 摘要的密钥的十六进制字符串表示形式。 如果指定,则还必须指定摘要 |
注意
有关示例,请参见使用__exec扩展指令。
您可以通过使用
选项启动mongod
/ 来测试指定一个或多个扩展指令的配置文件的最终输出。A /
开始将已解析的YAML配置文档输出并停止。如果配置文件中指定的任何扩展指令返回附加的扩展指令,则/ 引发错误并终止。mongos
--outputConfig
mongod
mongos
--outputConfig
stdout
mongod
mongos
警告
该--outputConfig
选项使用扩展指令返回任何字段的解析值。这包括以前使用外部来源作为配置选项掩盖的所有私人或敏感信息。
例如,以下配置文件
mongod.conf
包含__rest
扩展指令:
在指定的URL记录的字符串是 20128
如果配置文件包含__rest
扩展,则在Linux / macOS上,对配置文件的读取访问权限必须仅限于运行mongod
/ mongos
进程的用户。
启动mongod
与
和
选项:--configExpand "rest"
--outputConfig
的mongod
输出以下,以stdout
终止前: