ansible을 사용하여 mongodb 복제본 세트 도커 컨테이너 업그레이드

ansible을 사용하여 mongodb 복제본 세트 도커 컨테이너 업그레이드

Ansible을 사용하여 내 docker 컨테이너의 mongodb를 3.6에서 4.2로 업데이트하려고 시도하지만 docker 컨테이너가 계속 다시 시작됩니다.
다시 시작하는 이유는 호환성 수준이 3.6으로 설정되어 있기 때문입니다.
더 구체적으로:

IMPORTANT: UPGRADE PROBLEM: Found an invalid featureCompatibilityVersion document(ERROR: BadValue: Invalid value for version, found 3.6, expected '4.2' or '4.0'. Contents of featureCompatibilityVersion document in admin.system.version: { _id: "featureCompatibilityVersion", version: "3.6" }. See http://dochub.mongodb.org/core/4.0-feature-compatibility.). If the current featureCompatibilityVersion is below 4.0, see the documentation on upgrading at http://dochub.mongodb.org/core/4.0-upgrade-fcv.

이 문서를 업데이트하는 방법은 무엇입니까?
다음과 같은 빌드 후 명령(그렇게 부르자)을 실행해 보았습니다.

  - name: set compatibility level
    state: started
    shell: "docker exec mongodb-primary bash -c 'mongo --eval \"db.adminCommand( { setFeatureCompatibilityVersion: \"4.2\" } )\"'"
    become: True
    become_user: root
    register: result

뿐만 아니라 다른 옵션도 많이 시도했지만 모두 희망이 없었습니다.
그리고 이 ansible 스크립트는 mongo에 연결할 수 없기 때문에 실패합니다. 연결이 거부되었다고 합니다. Mongo는 아직 일어나지 않은 것 같습니다.

그렇다면 도커 컨테이너의 mongo를 3.6에서 4.2로 실제로 업그레이드하는 방법은 무엇입니까? Ansible 및 docker-compose를 사용합니다.

답변1

4.0으로 업그레이드한 다음 featureCompatibilityVersion을 4.0으로 설정하고 다시 4.2로 업그레이드한 후 featureCompatibilityVersion을 4.2로 설정하여 이 문제를 해결했습니다.

답변2

예, MongoDB를 사용하면 한 번의 업데이트로 3.6에서 4.2로 이동할 수 없으며, 필요한 버전을 얻을 때까지 다음 버전으로 이동해야 합니다.

관련 정보