Docs Menu
Docs Home
/ /

Valores de configuración externa para MongoDB autogestionado

MongoDB admite el uso de directivas de expansión en archivos de configuración para cargar valores de origen externo. Las directivas de expansión pueden cargar valores para... opciones del archivo de configuración o cargar el archivo de configuración completo. Las directivas de expansión ayudan a ocultar información confidencial, como certificados de seguridad y contraseñas.

storage:
dbPath: "/var/lib/mongo"
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
net:
bindIp:
__exec: "python /home/user/getIPAddresses.py"
type: "string"
trim: "whitespace"
digest: 85fed8997aac3f558e779625f2e51b4d142dff11184308dc6aca06cff26ee9ad
digest_key: 68656c6c30303030307365637265746d796f6c64667269656e64
tls:
mode: requireTLS
certificateKeyFile: "/etc/tls/mongod.pem"
certificateKeyFilePassword:
__rest: "https://myrestserver.example.net/api/config/myCertKeyFilePassword"
type: "string"
digest: b08519162ba332985ac18204851949611ef73835ec99067b85723e10113f5c26
digest_key: 6d795365637265744b65795374756666

Para utilizar directivas de expansión, debe especificar la --configExpand opción de línea de comandos con la lista completa de directivas de expansión utilizadas:

mongod --config "/path/to/config/mongod.conf" --configExpand "rest,exec"

Si omite la --configExpand opción o no especifica la lista completa de directivas de expansión utilizadas en el archivo de configuración,mongod/ devuelve un error ymongos --configExpand finaliza. Solo puede especificar la opción en la línea de comandos.

La __rest directiva de expansión carga valores del archivo de configuración desde un REST punto final. __rest admite la carga de valores específicos en el archivo de configuración o la carga del archivo de configuración completo.

El siguiente archivo de configuración utiliza la __rest directiva de expansión para cargar el net.tls.certificateKeyFilePassword valor de configuración desde un REST punto final externo:

storage:
dbPath: "/var/lib/mongo"
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
net:
bindIp: 192.51.100.24,127.0.0.1
tls:
mode: requireTLS
certificateKeyFile: "/etc/tls/mongod.pem"
certificateKeyFilePassword:
__rest: "https://myrestserver.example.net/api/config/myCertKeyFilePassword"
type: "string"
Permiso de archivo
Si el archivo de configuración incluye la __rest expansión, en Linux/macOS, el acceso de lectura al archivo de configuración debe limitarse únicamente al usuario que ejecuta mongod mongos el proceso /.
Análisis de expansión

Para analizar los __rest bloques, inicie mongod/mongos con la --configExpand "rest" opción.

El mongod/ emitemongos una GET solicitud contra la URL especificada. Si la solicitud es correcta, el mongod/mongos reemplaza el valor de certificateKeyFilePassword con el valor devuelto. Si la URL no se resuelve o si el REST punto final devuelve un valor no válido, el mongod/mongos genera un error y finaliza la conexión.

El siguiente archivo de configuración utiliza la __rest directiva de expansión para cargarlo desde un REST punto final externo. La directiva de expansión y sus opciones deben ser los únicos valores especificados en el archivo de configuración.

__rest: "https://myrestserver.example.net/api/config/fullConfig"
type: "yaml"
Permiso de archivo
Si el archivo de configuración incluye la __rest expansión, en Linux/macOS, el acceso de lectura al archivo de configuración debe limitarse únicamente al usuario que ejecuta mongod mongos el proceso /.
Análisis de expansión

Para analizar los __rest bloques, inicie mongod/mongos con la --configExpand "rest" opción.

El mongod/ emitemongos una GET solicitud a la URL especificada. Si la solicitud es correcta, el mongod/mongos analiza el archivo de configuración devuelto yaml y lo utiliza durante el inicio. Si la URL no se resuelve o no devuelve un archivo con el yaml formato correcto, el mongod/ genera un error ymongos finaliza.

Importante

El valor devuelto por el REST punto final especificado no puede incluir directivas de expansión adicionales.mongod/mongos no realiza ningún procesamiento adicional en los datos devueltos y finalizará con un código de error si estos incluyen directivas de expansión adicionales.

La __exec directiva de expansión carga valores del archivo de configuración desde un comando de shell o terminal. __exec admite la carga de valores específicos en el archivo de configuración o la carga de todo el archivo de configuración.

El siguiente archivo de configuración de ejemplo utiliza la __exec directiva de expansión para cargar el net.tls.certificateKeyFilePassword valor de configuración desde la salida de un comando de shell o terminal:

storage:
dbPath: "/var/lib/mongo"
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
net:
bindIp: 192.51.100.24,127.0.0.1
tls:
mode: requireTLS
certificateKeyFile: "/etc/tls/mongod.pem"
certificateKeyFilePassword:
__exec: "python /home/myUserName/getPEMPassword.py"
type: "string"
Permiso de archivo
Si el archivo de configuración incluye la __exec expansión, en Linux/macOS, el acceso de escritura al archivo de configuración debe estar limitado únicamente al usuario que ejecuta mongod mongos el proceso /.
Análisis de expansión

Para analizar los __exec bloques, inicie mongod/mongos con la --configExpand "exec" opción.

El comandomongod/mongosintenta ejecutar la operación especificada. Si el comando se ejecuta correctamente, el comandomongod/mongosreemplaza el valor de certificateKeyFilePassword con el valor devuelto. Si el comando falla o devuelve un valor no válido para la configuración del archivo de configuración, el comandomongod/mongosgenera un error y finaliza.

El siguiente archivo de configuración de ejemplo utiliza la __exec directiva de expansión para cargar el archivo de configuración desde la salida de un comando de shell o terminal. La __exec directiva de expansión y sus opciones deben ser los únicos valores especificados en el archivo de configuración.

__exec: "python /home/myUserName/getFullConfig.py"
type: "yaml"
Permiso de archivo
Si el archivo de configuración incluye la __exec expansión, en Linux/macOS, el acceso de escritura al archivo de configuración debe estar limitado únicamente al usuario que ejecuta mongod mongos el proceso /.
Análisis de expansión

Para analizar los __exec bloques, inicie mongod/mongos con la --configExpand "rest" opción.

Si el comando se ejecuta correctamente,mongod/ analiza el archivo de configuraciónmongos devuelto yaml y lo utiliza durante el inicio. Si el comando falla o devuelve un yaml archivo no mongodválido, / genera un error ymongos finaliza.

Importante

Los datos devueltos al ejecutar la __exec cadena especificada no pueden incluir directivas de expansión adicionales.mongod/mongos no realiza procesamiento adicional en los datos devueltos y finalizará con un código de error si estos incluyen directivas de expansión adicionales.

__rest

La __rest directiva de expansión carga valores del archivo de configuración desde un REST punto final. __rest permite cargar valores específicos en el archivo de configuración o cargar el archivo de configuración completo. A continuación,mongod/ empieza a usar los valores externos como parte de sumongos configuración.

La __rest directiva de expansión tiene la siguiente sintaxis:

  • Para especificar un punto final REST para una o más configuraciones de un archivo de configuración específico:

    <some configuration file setting>:
    __rest: "<string>"
    type: "string"
    trim: "none|whitespace"
    digest: "<string>"
    digest_key: "<string>"
  • Para especificar un punto final REST para todo el archivo de configuración:

    __rest: "<string>"
    type: "yaml"
    trim: "none|whitespace"

    Si se especifica el archivo de configuración completo a través del REST punto final, la directiva de expansión y sus opciones deben ser los únicos valores especificados en el archivo de configuración.

__rest toma los siguientes campos:

Campo
Tipo
Descripción

string

Obligatorio La URL contra la cual mongod/ emitemongos una GET solicitud para recuperar el valor de origen externo.

Para los puntos finales que no son de host REST local (por ejemplo, un REST punto final alojado en un servidor remoto), __rest requierehttps:// URL cifradas () donde tanto la máquina host como el servidor remoto admitan TLS 1.1 o posterior.

Si el REST punto final especificado en la URL requiere autenticación, codifique las credenciales en la URL con el formato de información de usuario RFC estándar.3986

Para los puntos REST finales locales REST __rest (por ejemplo, un punto final que escucha en la máquina host), permitehttp:// URL sin cifrar ().

IMPORTANTE: El valor devuelto por el REST punto final especificado no puede incluir directivas de expansión adicionales.mongod/mongos no realiza procesamiento adicional en los datos devueltos y finalizará con un código de error si estos incluyen directivas de expansión adicionales.

type

string

Opcional Controla cómo analiza el valor devuelto desde la URL __rest especificada.

Los valores posibles son:

  • string ( Pordefecto)

    Indica a que analice los datos devueltos como una cadena literal. Si __rest se string especifica, todo el __rest bloque y las opciones complementarias deben estar anidados bajo el campo para el que se cargan los valores de origen externo.

  • yaml

    Indica a que analice los datos devueltos como __rest un yaml archivo con formato. Si se yaml especifica, el bloque debe ser el __rest mongodúnico contenido del archivo de configuración. / reemplazamongos el yaml contenido del archivo de configuración con el obtenido del recurso REST.

trim

string

Opcional: Especifique whitespace para indicar a que recorte cualquier espacio inicial o final, específicamente las __rest ocurrencias " " "\r"de,,,, "\n" "\t""\v"y."\f" El valor predeterminado es none o no se recorta.

string

Opcional. El256 resumen SHA- del resultado de la expansión.

Si se especifica, también debe especificar digest_key.

string

Opcional. La representación de cadena hexadecimal del secreto utilizado para calcular el256 resumen SHA-.

Si se especifica, también debe especificar el resumen.

Nota

  • Si el archivo de configuración incluye la __rest expansión, en Linux/macOS, el acceso de lectura al archivo de configuración debe limitarse únicamente al usuario que ejecuta mongod mongos el proceso /.

  • Para habilitar el análisis de la __rest directiva de expansión, inicie mongod/mongos con la --configExpand "rest" opción.

Para ver ejemplos, consulte Utilizar la __rest directiva de expansión.

__exec

La __exec directiva de expansión carga los valores del archivo de configuración desde la salida de un comando de shell o terminal. __exec permite cargar valores específicos en el archivo de configuración o cargar el archivo de configuración completo. A continuación,mongod/mongos empieza a usar los valores externos como parte de su configuración.

La __exec directiva de expansión tiene la siguiente sintaxis:

  • Para especificar un comando de shell o terminal para una o más configuraciones de un archivo de configuración específico:

    <some configuration file setting>:
    __exec: "<string>"
    type: "string"
    trim: "none|whitespace"
  • Para especificar un comando de shell o terminal para todo el archivo de configuración:

    __exec: "<string>"
    type: "yaml"
    trim: "none|whitespace"

    Si se especifica el archivo de configuración completo a través de un comando de terminal o shell, la directiva de expansión y sus opciones deben ser los únicos valores especificados en el archivo de configuración.

__exec toma los siguientes campos:

Campo
Tipo
Descripción

__exec

string

Obligatorio La cadena que mongod/ ejecuta en la terminal o shell para recuperar el valor de origenmongos externo.

En hosts Linux y OSX, la ejecución se gestiona mediante POSIX popen(). En hosts Windows, la ejecución se gestiona mediante la API de control de procesos. __exec abre una tubería de solo lectura con el mismo usuario que inició mongod o mongos.

IMPORTANTE: Los datos devueltos al ejecutar el comando especificado no pueden incluir directivas de expansión adicionales.mongod/mongos no realiza procesamiento adicional en los datos devueltos y finalizará con un código de error si estos incluyen directivas de expansión adicionales.

type

string

Opcional Controla cómo analiza el valor devuelto por el comando __exec ejecutado.

Los valores posibles son:

  • string ( Pordefecto )

    Indica a que analice los datos devueltos como una cadena literal. Si __exec se string especifica, todo el __exec bloque y las opciones complementarias deben estar anidados bajo el campo para el que se cargan los valores de origen externo.

  • yaml

    Indica a que analice los datos devueltos como __exec un yaml archivo con formato. Si se yaml especifica, el bloque debe ser el __exec mongodúnico contenido del archivo de configuración. / reemplazamongos el yaml contenido del archivo de configuración con el obtenido del comando ejecutado.

trim

string

Opcional: Especifique whitespace para indicar a que recorte cualquier espacio inicial o final, específicamente las __exec ocurrencias " " "\r"de,,,, "\n" "\t""\v"y."\f" El valor predeterminado es none o no se recorta.

string

Opcional. El256 resumen SHA- del resultado de la expansión.

Si se especifica, también debe especificar la digest_key

string

Opcional. La representación de cadena hexadecimal del secreto utilizado para calcular el256 resumen SHA-.

Si se especifica, también debe especificar el resumen.

Nota

  • Si el archivo de configuración incluye la __exec expansión, en Linux/macOS, el acceso de escritura al archivo de configuración debe estar limitado únicamente al usuario que ejecuta mongod mongos el proceso /.

  • Para habilitar el análisis de las __exec directivas de expansión, inicie mongod/mongos con la --configExpand "exec" opción.

Para ver ejemplos, consulte Utilizar la __exec directiva de expansión.

Puede probar la salida final de un archivo de configuración que especifique una o más directivas de expansión iniciando mongod/mongos con la --outputConfig opción. Un mongod/mongos iniciado con genera el documento de configuración YAML --outputConfig resuelto stdout en y se detiene. Si alguna directiva de expansión especificada en el archivo de configuración devuelve directivas de expansión adicionales,mongod/ genera un error ymongos finaliza.

Advertencia

La opción devuelve los valores resueltos de cualquier campo que utilice una directiva de expansión. Esto incluye cualquier información privada o sensible previamente ocultada mediante el uso de una fuente externa para la opción de --outputConfig configuración.

Por ejemplo, el siguiente archivo mongod.conf de configuración contiene una __rest directiva de expansión:

storage:
dbPath: "/var/lib/mongo"
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
net:
port:
__rest: "https://mongoconf.example.net:8080/record/1"
type: string

La cadena registrada en la URL especificada es 20128

Si el archivo de configuración incluye la __rest expansión, en Linux/macOS, el acceso de lectura al archivo de configuración debe limitarse únicamente al usuario que ejecuta mongod mongos el proceso /.

Comience el mongod con --configExpand "rest" las opciones --outputConfig y:

mongod -f mongod.conf --configExpand rest --outputConfig

El envía lo siguiente mongod a stdout antes de finalizar:

config: mongod.conf
storage:
dbPath: "/var/lib/mongo"
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
net:
port: 20128
outputConfig: true

Volver

Opciones del archivo de configuración

En esta página