Atualizar o contêiner docker do mongodb replicaset usando ansible

Atualizar o contêiner docker do mongodb replicaset usando ansible

Tentando atualizar o mongodb em meu contêiner docker de 3.6 para 4.2 usando ansible, mas o contêiner do docker continua reiniciando.
O motivo da reinicialização é porque o nível de compatibilidade está definido como 3.6.
Mais especificamente:

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.

Como atualizar este documento?
Tentei executar um comando pós-compilação ansible (vamos chamá-lo assim), que se parece com:

  - 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

Bem como tentei várias outras opções, todas sem esperança.
E esse script ansible está falhando porque não consegue se conectar ao mongo. A conexão foi recusada, diz. Mongo ainda não acordou, presumo.

Então, como realmente atualizar o mongo no contêiner docker de 3.6 para 4.2? Usando ansible e docker-compose.

Responder1

Resolvido esse problema atualizando para 4.0, definindo featureCompatibilityVersion como 4.0, atualizando novamente para 4.2 e, em seguida, definindo featureCompatibilityVersion como 4.2

Responder2

Sim, com o MongoDB você não pode pular de 3.6 para 4.2 em uma atualização, você tem que ir para a próxima versão e assim por diante até obter a versão necessária.

informação relacionada