문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

외부에서 가져온 구성 파일 값

이 페이지의 내용

  • __rest 확장 지시문 사용
  • __exec 확장 지시문 사용
  • 확장 지시문 참조
  • 완료된 확장 명령어 값이 있는 구성 파일 출력하기

버전 4.2에 추가되었습니다.

MongoDB는 구성 파일에서 확장 지시문을 사용하여 외부 소스 값을 로드할 수 있도록 지원합니다. 확장 지시문은 특정 구성 파일 옵션 의 값을 로드 하거나 전체 구성 파일을 로드할 수 있습니다. 확장 지시문은 보안 인증서 및 비밀번호와 같은 기밀 정보를 숨기는 데 도움이 됩니다.

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

확장 디렉티브를 사용하려면 사용된 확장 디렉티브의 전체 목록과 함께 --configExpand 명령줄 옵션을 지정해야 합니다.

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

--configExpand 옵션을 생략 하거나 구성 파일에 사용된 확장 지시어의 전체 목록을 지정하지 않으면 mongod/mongos 오류가 반환되고 종료됩니다. 명령줄에서는 --configExpand 옵션만 지정할 수 있습니다.

__rest 확장 지시문은 REST 엔드포인트에서 구성 파일 값을 로드합니다. __rest 는 구성 파일의 특정 값 로드 또는 전체 구성 파일 로드를 지원합니다.

중요

지정된 REST 엔드포인트에서 반환된 값에는 추가 확장 지시문이 포함될 수 없습니다 . mongod/mongos 는 반환된 데이터에 대해 추가 처리를 수행하지 않으며 , 반환된 데이터에 추가 확장 지시문이 포함된 경우 오류 코드와 함께 종료됩니다.

__exec 확장 지시문은 셸 또는 터미널 명령에서 구성 파일 값을 로드합니다. __exec 는 구성 파일의 특정 값 로드 또는 전체 구성 파일 로드를 지원합니다.

중요

지정된 __exec 문자열을 실행하여 반환된 데이터에는 추가 확장 지시문이 포함될 수 없습니다 . mongod/mongos 는 반환된 데이터에 대해 추가 처리를 수행하지 않으며 , 반환된 데이터에 추가 확장 지시문이 포함된 경우 오류 코드와 함께 종료됩니다.

__rest

__rest 확장 지시문은 REST 엔드포인트에서 구성 파일 값을 로드합니다. __rest 는 구성 파일의 특정 값 로드 또는 전체 구성 파일 로드를 지원합니다. 그런 다음 mongod/mongos 는 외부 소스 값을 구성의 일부로 사용하기 시작합니다.

__rest 확장 지시문에는 다음과 같은 구문이 있습니다.

  • 특정 구성 파일 설정에 대해 REST 엔드포인트를 지정하려면 다음을 수행합니다.

    <some configuration file setting>:
    __rest: "<string>"
    type: "string"
    trim: "none|whitespace"
    digest: "<string>"
    digest_key: "<string>"
  • 전체 구성 파일에 대해 REST 엔드포인트를 지정하려면 다음을 수행합니다.

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

    REST 엔드포인트를 통해 전체 구성 파일을 지정하는 경우 확장 지시문과 해당 옵션은 구성 파일에 지정된 유일한 값 이어야 합니다.

__rest 은(는) 다음 필드를 사용합니다.

필드
유형
설명
__rest
문자열

필수 mongod/mongos 가 외부 소스 값을 검색하기 위해 GET 요청을 실행하는 URL입니다.

로컬 호스트가 아닌 REST 엔드포인트(예: 원격 서버에서 호스팅되는 REST 엔드포인트)의 경우 __rest 에는 호스트 시스템과 원격 서버가 모두 TLS 1 를 지원하는 암호화된(https://) URL이 필요합니다.1 이상.

URL에 지정된 엔드포인트에 REST 인증이 필요한 경우 표준 RFC 사용자 정보 를 사용하여 자격 3986 증명을 URL에 인코딩합니다. 형식.

localhost REST 엔드포인트(예: 호스트 컴퓨터에서 수신 대기 중인 REST 엔드포인트)의 경우 __rest 는 암호화되지 않은 (http://) URL을 허용합니다.

중요

지정된 REST 엔드포인트에서 반환된 값에는 추가 확장 지시문이 포함될 수 없습니다 . mongod/mongos 는 반환된 데이터에 대해 추가 처리를 수행하지 않으며 , 반환된 데이터에 추가 확장 지시문이 포함된 경우 오류 코드와 함께 종료됩니다.

type
문자열

선택 사항 __rest 가 지정된 URL에서 반환된 값을 구문 분석하는 방법을 제어합니다.

가능한 값은 다음과 같습니다.

  • string (기본값)

    반환된 데이터를 리터럴 문자열로 구문 분석하도록 __rest 에 지시합니다. string 를 지정하는 경우 전체 __rest 차단 및 지원 옵션이 외부 소스 값을 로드하는 필드 아래에 중첩되어야 합니다.

  • yaml

    반환된 데이터를 yaml 형식의 파일로 구문 분석하도록 __rest 에 지시합니다. yaml 지정하는 경우 __rest 블록이 구성 파일의 유일한 콘텐츠여야 합니다. mongod/mongos 는 구성 파일 내용을 REST 리소스에서 검색한 yaml 로 바꿉니다.

trim
문자열
선택 사항 whitespace 을 지정하여 __rest 가 선행 또는 후행 공백, 특히 " ", "\r", "\n", "\t", "\v""\f" 의 발생을 잘라내도록 지시합니다. 기본값은 none 이거나 트리밍을 하지 않습니다.
문자열

선택 사항. 확장 결과의 SHA-256 다이제스트입니다.

지정된 경우 다이제스트_키도 지정해야 합니다.

문자열

참고

  • 구성 파일에 __rest 확장이 포함된 경우 Linux/macOS에서 구성 파일에 대한 읽기 액세스는 mongod / mongos 프로세스를 실행하는 사용자로만 제한되어야 합니다.

  • __rest 확장 지시어의 구문 분석을 활성화하려면--configExpand "rest"옵션으로 mongod/mongos 를 시작합니다.

예시 __rest 확장 지시문 사용을 참조하세요.

__exec

__exec 확장 지시문은 셸 또는 터미널 명령의 출력에서 구성 파일 값을 로드합니다. __exec 은(는) 구성 파일의 특정 값 로드 또는 전체 구성 파일 로드를 지원합니다. 그런 다음 mongod/mongos 는 외부 소스 값을 구성의 일부로 사용하기 시작합니다.

__exec 확장 지시문에는 다음과 같은 구문이 있습니다.

  • 특정 구성 파일 설정에 대한 셸 또는 터미널 명령을 지정하려면 다음을 수행합니다.

    <some configuration file setting>:
    __exec: "<string>"
    type: "string"
    trim: "none|whitespace"
  • 전체 구성 파일에 대해 shell 또는 터미널 명령을 지정하려면 다음을 수행합니다.

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

    터미널 또는 셸 명령을 통해 전체 구성 파일을 지정하는 경우 확장 지시문과 해당 옵션만 구성 파일에 지정된 유일한 값 이어야 합니다.

__exec 은(는) 다음 필드를 사용합니다.

필드
유형
설명
__exec
문자열

필수 mongod/mongos 가 외부 소스 값을 검색하기 위해 터미널 또는 셸에서 실행하는 문자열입니다.

Linux 및 OSX 호스트에서 실행은 POSIX popen() 을(를) 통해 처리됩니다. Windows 호스트에서 실행은 프로세스 제어 API를 통해 처리됩니다. __execmongod 또는 mongos 를 시작한 동일한 사용자로 읽기 전용 파이프를 엽니다.

중요

지정된 명령을 실행하여 반환되는 데이터에는 추가 확장 지시문이 포함될 수 없습니다 . mongod/mongos 는 반환된 데이터에 대해 추가 처리를 수행하지 않으며 , 반환된 데이터에 추가 확장 지시문이 포함된 경우 오류 코드와 함께 종료됩니다.

type
문자열

선택 사항 __exec 가 실행된 명령에서 반환된 값을 구문 분석하는 방법을 제어합니다.

가능한 값은 다음과 같습니다.

  • string (기본값)

    반환된 데이터를 리터럴 문자열로 구문 분석하도록 __exec 에 지시합니다. string 를 지정하는 경우 전체 __exec 차단 및 지원 옵션이 외부 소스 값을 로드하는 필드 아래에 중첩되어야 합니다.

  • yaml

    반환된 데이터를 yaml 형식의 파일로 구문 분석하도록 __exec 에 지시합니다. yaml 지정하는 경우 __exec 블록이 구성 파일의 유일한 콘텐츠여야 합니다. mongod/mongos 는 구성 파일 내용을 실행된 명령에서 검색된 yaml 로 바꿉니다.

trim
문자열
선택 사항 whitespace 을 지정하여 __exec 가 선행 또는 후행 공백, 특히 " ", "\r", "\n", "\t", "\v""\f" 의 발생을 잘라내도록 지시합니다. 기본값은 none 이거나 트리밍을 하지 않습니다.
문자열

선택 사항. 확장 결과의 SHA-256 다이제스트입니다.

지정된 경우 다이제스트_키도 지정해야 합니다.

문자열

참고

  • 구성 파일에 __exec 확장이 포함된 경우 Linux/macOS에서 구성 파일에 대한 쓰기 액세스는 mongod / mongos 프로세스를 실행하는 사용자로만 제한되어야 합니다.

  • __exec 확장 지시어의 구문 분석을 활성화하려면 mongod/mongos--configExpand "exec" 옵션으로 시작합니다.

예시 __exec 확장 지시문 사용을 참조하세요.

옵션으로 --outputConfig/ mongod mongos 를 시작하여 하나 이상의 확장 지시문을 지정하는 mongod구성 파일의 최종 출력을 테스트할 수mongos 있습니다. / 가 로 --outputConfig 시작하면 확인된 YAML 구성 문서를 로 출력하고 stdout 중지됩니다. 구성 파일에 지정된 확장 지시어가 추가 확장 지시문을 반환하는 경우 mongod/ 오류가 발생하고mongos 종료됩니다.

경고

--outputConfig 옵션은 확장 지시문을 사용하는 모든 필드에 대해 확인된 값을 반환합니다. 여기에는 이전에 구성 옵션에 대한 외부 소스를 사용하여 숨겨진 모든 개인 정보 또는 민감한 정보가 포함됩니다.

예를 들어 다음 구성 파일 mongod.conf 에는 __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

지정된 URL에 기록된 문자열은 다음과 같습니다. 20128

구성 파일에 __rest 확장이 포함된 경우 Linux/macOS에서 구성 파일에 대한 읽기 액세스는 mongod / mongos 프로세스를 실행하는 사용자로만 제한되어야 합니다.

mongod --configExpand "rest"--outputConfig 옵션으로 를 시작합니다.

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

mongod 는 종료하기 전에 다음을 stdout 에 출력합니다.

config: mongod.conf
storage:
dbPath: "/var/lib/mongo"
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
net:
port: 20128
outputConfig: true
← 구성 파일 옵션