Actualice el contenedor acoplable mongodb replicaset usando ansible

Actualice el contenedor acoplable mongodb replicaset usando ansible

Intento actualizar mongodb en mi contenedor acoplable de 3.6 a 4.2 usando ansible, pero el contenedor acoplable sigue reiniciándose.
La razón por la que se reinicia es porque el nivel de compatibilidad está establecido en 3.6.
Más específicamente:

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.

¿Cómo actualizar este documento?
Intenté ejecutar un comando ansible posterior a la compilación (llamémoslo así), que se ve así:

  - 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

Además de probar muchas otras opciones, todas sin esperanza.
Y este script ansible está fallando porque no puede conectarse a mongo. La conexión es rechazada, dice. Supongo que Mongo aún no está activo.

Entonces, ¿cómo actualizar mongo en el contenedor Docker de 3.6 a 4.2? Usando ansible y docker-compose.

Respuesta1

Se resolvió este problema actualizando a 4.0, luego configurando featureCompatibilityVersion en 4.0, luego actualizando nuevamente a 4.2, luego configurando featureCompatibilityVersion en 4.2

Respuesta2

Sí, con MongoDB no puedes saltar de la 3.6 a la 4.2 en una actualización, tienes que pasar a la siguiente versión, y así sucesivamente hasta conseguir la versión que necesitas.

información relacionada