Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Valores de configuração externa para MongoDB autogerenciado

O MongoDB oferece suporte ao uso de diretivas de expansão em arquivos de configuração para carregar valores de origem externa. As diretivas de expansão podem carregar valores para opções específicas do arquivo de configuração ou carregar o arquivo de configuração inteiro. As diretivas de expansão ajudam a ocultar informações confidenciais, como certificados de segurança e senhas.

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
  • Se o arquivo de configuração incluir a expansão __rest, no Linux ou macOS, o acesso de leitura ao arquivo de configuração deverá ser limitado ao usuário que estiver executando o processo mongod ou mongos apenas.

  • Se o arquivo de configuração incluir a expansão __exec, no Linux ou macOS, o acesso de gravação ao arquivo de configuração deverá ser limitado ao usuário que estiver executando o processo mongod ou mongos apenas.

Para usar diretivas de expansão, você deve especificar a opção de linha de comando --configExpand com a lista completa de diretivas de expansão usadas:

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

Se você omitir a --configExpand opção ou se não especificar a lista completa de diretivas de expansão usadas no arquivo de configuração, retornará um erro e mongod --configExpand encerrará. Você só pode especificar a opção na linha de comando.

A diretiva de expansão __rest carrega valores do arquivo de configuração de um ponto de extremidade REST. __rest suporta o carregamento de valores específicos no arquivo de configuração ou o carregamento de todo o arquivo de configuração.

O arquivo de configuração a seguir usa a diretiva de expansão __rest para carregar o valor de configuração net.tls.certificateKeyFilePassword de um endpoint REST 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"
Permissão de arquivo

Se o arquivo de configuração incluir a expansão __rest, no Linux ou macOS, o acesso de leitura ao arquivo de configuração deverá ser limitado ao usuário que estiver executando o processo mongod ou mongos apenas.

Análise de expansão

Para analisar os __rest blocos, inicie o mongod com a --configExpand "rest" opção.

O emite uma mongod GET solicitação em relação à URL especificada. Se for bem-sucedido,mongod substitui o valor de certificateKeyFilePassword pelo valor retornado. Se a URL não conseguir resolver ou se o ponto de REST extremidade retornar um valor inválido, lançará um erro e mongod encerrará.

O seguinte arquivo de configuração utiliza a diretiva de expansão __rest para carregar o arquivo de configuração de um endpoint REST externo. A diretiva de expansão e suas opções devem ser os únicos valores especificados no arquivo de configuração.

__rest: "https://myrestserver.example.net/api/config/fullConfig"
type: "yaml"
Permissão de arquivo

Se o arquivo de configuração incluir a expansão __rest, no Linux ou macOS, o acesso de leitura ao arquivo de configuração deverá ser limitado ao usuário que estiver executando o processo mongod ou mongos apenas.

Análise de expansão

Para analisar os __rest blocos, inicie o mongod com a --configExpand "rest" opção.

O emite uma mongod GET solicitação em relação à URL especificada. Se for bem-sucedido, analisa o arquivo de configuração mongod retornado yaml e o usa durante a inicialização. Se o URL não conseguir resolver ou retornar um yaml arquivo formatado corretamente, o lançará um erro e mongod encerrará.

Importante

O valor retornado pelo REST endpoint especificado não pode incluir nenhuma diretiva de expansão adicional. O mongod não executa processamento adicional nos dados retornados e será encerrado com um código de erro se os dados retornados incluírem diretivas de expansão adicionais.

A diretiva de expansão __exec carrega os valores do arquivo de configuração a partir de um comando shell ou terminal. __exec suporta o carregamento de valores específicos no arquivo de configuração ou o carregamento de todo o arquivo de configuração.

O exemplo de arquivo de configuração a seguir usa a diretiva de expansão __exec para carregar o valor de configuração net.tls.certificateKeyFilePassword a partir da saída de um comando de shell ou 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"
Permissão de arquivo

Se o arquivo de configuração incluir a expansão __exec, no Linux ou macOS, o acesso de gravação ao arquivo de configuração deverá ser limitado ao usuário que estiver executando o processo mongod ou mongos apenas.

Análise de expansão

Para analisar os __exec blocos, inicie o mongod com a --configExpand "exec" opção.

Omongodtenta executar a operação especificada. Se o comando for executado com sucesso, omongodsubstitui o valor de certificateKeyFilePassword pelo valor retornado. Se o comando falhar ou retornar um valor inválido para a configuração do arquivo de configuração, omongodlançará um erro e encerrará.

O arquivo de configuração de exemplo a seguir usa a diretiva de expansão __exec para carregar o arquivo de configuração a partir da saída de um comando de shell ou terminal. A diretiva de expansão __exec e suas opções devem ser os únicos valores especificados no arquivo de configuração.

__exec: "python /home/myUserName/getFullConfig.py"
type: "yaml"
Permissão de arquivo

Se o arquivo de configuração incluir a expansão __exec, no Linux ou macOS, o acesso de gravação ao arquivo de configuração deverá ser limitado ao usuário que estiver executando o processo mongod ou mongos apenas.

Análise de expansão

Para analisar os __exec blocos, inicie o mongod com a --configExpand "rest" opção.

Se o comando for executado com êxito, o analisará o arquivo de configuração mongod retornado yaml e o utilizará durante a inicialização. Se o comando falhar ou retornar um yaml arquivo inválido, o mongod lançará um erro e encerrará.

Importante

Os dados retornados executando a __exec string especificada não podem incluir nenhuma diretiva de expansão adicional. O mongod não executa processamento adicional nos dados retornados e será encerrado com um código de erro se os dados retornados incluírem diretivas de expansão adicionais.

__rest

A __rest diretiva de expansão carrega valores de arquivo de configuração de um REST endpoint . __rest suporta o carregamento de valores específicos no arquivo de configuração ou o carregamento de todo o arquivo de configuração. O então começa a usar os valores de origem externa como parte de sua mongod configuração.

A diretiva de expansão __rest tem a seguinte sintaxe:

  • Passo a passo de como especificar um endpoint REST para uma configuração específica ou para configurações específicas no arquivo de configuração:

    <some configuration file setting>:
    __rest: "<string>"
    type: "string"
    trim: "none|whitespace"
    digest: "<string>"
    digest_key: "<string>"
  • Para especificar um ponto de extremidade REST para todo o arquivo de configuração:

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

    Se especificar todo o arquivo de configuração por meio do endpoint REST, a diretiva de expansão e suas opções devem ser os únicos valores especificados no arquivo de configuração.

__rest usa os seguintes campos:

Campo
Tipo
Descrição

string

Obrigatório A URL para a qual o emite mongod uma GET solicitação de para recuperar o valor de origem externa.

Para endpoints REST não localhosts (por exemplo, um endpoint REST hospedado em um servidor), __rest requer URLs criptografadas (https://) em que a máquina host e o servidor suportem TLS 1.1 ou posterior.

Se o ponto de extremidade REST especificado na URL exigir autenticação, codifique as credenciais na URL com o padrão no formato RFC 3986 Informações do usuário .

Para endpoints REST de host local (por exemplo, um endpoint REST ouvindo na máquina host), __rest possibilita URLs não criptografados (http://).

IMPORTANTE: o valor retornado pelo REST endpoint especificado não pode incluir nenhuma diretiva de expansão adicional. O mongod não executa processamento adicional nos dados retornados e será encerrado com um código de erro se os dados retornados incluírem diretivas de expansão adicionais.

type

string

Opcional Controla como __rest analisa o valor retornado a partir da URL especificada.

Os valores possíveis são:

  • string (Padrão)

    Direciona __rest para analisar os dados retornados como uma string literal. Se especificar string, todo o bloco de__rest e as opções de suporte devem ser aninhadas sob o campo para o qual você estiver carregando valores de origem externa.

  • yaml

    Direciona__restpara analisar os dados retornados como um arquivo formatado yaml. Se especificar yaml, o bloco__restdeverá ser o único conteúdo no arquivo de configuração. Omongodsubstitui o conteúdo do arquivo de configuração pelo yaml recuperado do recurso REST.

trim

string

Opcional Especifique whitespace para instruir __rest a cortar qualquer espaço em branco à esquerda ou à direita, especificamente as ocorrências de " ", "\r", "\n", "\t", "\v" e "\f". O padrão é none ou nenhum corte.

string

Opcional. O resumo SHA-256 do resultado da expansão.

Se especificado, você também deve especificar o digest_key.

string

Opcional. A representação de string hexadecimal do segredo usado para calcular o resumo SHA-256 .

Se especificado, você também deve especificar o resumo.

Observação

  • Se o arquivo de configuração incluir a expansão __rest, no Linux ou macOS, o acesso de leitura ao arquivo de configuração deverá ser limitado ao usuário que estiver executando o processo mongod ou mongos apenas.

  • Para habilitar a análise da __rest diretiva de expansão, inicie o mongod com a --configExpand "rest" opção.

Para obter exemplos, consulte Usar a diretiva de expansão __rest .

__exec

A __exec diretiva de expansão carrega valores de arquivo de configuração da saída de um comando de shell ou terminal. __exec suporta o carregamento de valores específicos no arquivo de configuração ou o carregamento de todo o arquivo de configuração. O então começa a usar os valores de origem externa como parte de sua mongod configuração.

A diretiva de expansão __exec tem a seguinte sintaxe:

  • Para especificar um comando de terminal ou shell para uma configuração ou configurações específicas do arquivo de configuração:

    <some configuration file setting>:
    __exec: "<string>"
    type: "string"
    trim: "none|whitespace"
  • Para especificar um comando shell ou terminal para todo o arquivo de configuração:

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

    Se especificar todo o arquivo de configuração por meio de um comando de terminal ou shell, a diretiva de expansão e suas opções devem ser os únicos valores especificados no arquivo de configuração.

__exec usa os seguintes campos:

Campo
Tipo
Descrição

__exec

string

Obrigatório A string que o executa no terminal ou shell para recuperar o valor de origem mongod externa.

Em hosts Linux e OSX, a execução é tratada via POSIX popen(). Em hosts Windows, a execução é feita por meio da API de controle de processo. __exec abre um pipeline somente leitura como o mesmo usuário que iniciou o mongod ou mongos.

IMPORTANTE: os dados retornados pela execução do comando especificado não podem incluir nenhuma diretiva de expansão adicional. O mongod não executa processamento adicional nos dados retornados e será encerrado com um código de erro se os dados retornados incluírem diretivas de expansão adicionais.

type

string

Opcional Controla como __exec analisa o valor retornado pelo comando executado.

Os valores possíveis são:

  • string (Padrão)

    Direciona __exec para analisar os dados retornados como uma string literal. Se especificar string, todo o bloco de__exec e as opções de suporte devem ser aninhadas sob o campo para o qual você estiver carregando valores de origem externa.

  • yaml

    Direciona__execpara analisar os dados retornados como um arquivo formatado yaml. Se especificar yaml, o bloco__execdeverá ser o único conteúdo no arquivo de configuração. Omongodsubstitui o conteúdo do arquivo de configuração pelo yaml recuperado do comando executado.

trim

string

Opcional Especifique whitespace para instruir __exec a cortar qualquer espaço em branco à esquerda ou à direita, especificamente as ocorrências de " ", "\r", "\n", "\t", "\v" e "\f". O padrão é none ou nenhum corte.

string

Opcional. O resumo SHA-256 do resultado da expansão.

Se especificado, você também deve especificar o digest_key.

string

Opcional. A representação de string hexadecimal do segredo usado para calcular o resumo SHA-256 .

Se especificado, você também deve especificar o digest

Observação

  • Se o arquivo de configuração incluir a expansão __exec, no Linux ou macOS, o acesso de gravação ao arquivo de configuração deverá ser limitado ao usuário que estiver executando o processo mongod ou mongos apenas.

  • Para habilitar a análise das __exec diretivas de expansão do, inicie o mongod com a --configExpand "exec" opção.

Para obter exemplos, consulte Usar a diretiva de expansão __exec .

Você pode testar a saída final de um arquivo de configuração que especifica uma ou mais diretivas de expansão iniciando o mongod com a --outputConfig opção. Um mongod iniciado com envia o documento de configuração YAML resolvido --outputConfig para stdout e interrompe. Se qualquer diretiva de expansão especificada no arquivo de configuração retornar diretivas de expansão adicionais, o lançará um erro e mongod encerrará.

Aviso

A opção --outputConfig retorna os valores resolvidos para qualquer campo usando uma diretiva de expansão. Isso inclui qualquer informação privada ou confidencial anteriormente ocultada pelo uso de uma fonte externa para a opção de configuração.

Por exemplo, o seguinte arquivo de configuração mongod.conf contém uma diretiva de expansão __rest:

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

A string registrada na URL especificada é 20128

Se o arquivo de configuração incluir a expansão __rest, no Linux ou macOS, o acesso de leitura ao arquivo de configuração deverá ser limitado ao usuário que estiver executando o processo mongod ou mongos apenas.

Inicie o mongod com as opções --configExpand "rest" e --outputConfig:

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

O mongod gera o seguinte para stdout antes de terminar:

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