Revertir Apigee Edge 4.19.01

Edge para la nube privada v4.19.01

Si encuentras un error durante una actualización a Edge 4.19.01, puedes revertir el componente que causó el error y volver a intentar la actualización.

Puedes revertir Edge 4.19.01 a las siguientes versiones de actualización de funciones:

  • Versión 4.18.05
  • Versión 4.18.01
  • Versión 4.17.09*

* Para revertir de 4.19.01 a 4.17.09, debes revertir Postgres, además de revertir los componentes en cada nodo. Si reviertes a las versiones 4.18.01 o 4.18.05, no es necesario que reviertas Postgres, ya que el proceso de actualización no incluyó una actualización de Postgres.

Hay dos situaciones en las que es posible que desees realizar una reversión:

  1. Revierte a una Versión de función anterior. Por ejemplo, de 4.19.01 a 4.18.05.
  2. Revierte a una versión de actualización anterior de la misma versión. Por ejemplo, de 4.19.01.02 a 4.19.01.01.

Para obtener más información, consulta el proceso de lanzamiento de Apigee Edge.

Quién puede realizar una reversión

El usuario que realiza una reversión debe ser el mismo que el que actualizó Edge originalmente o un usuario que se ejecuta como usuario raíz.

De forma predeterminada, los componentes de Edge se ejecutan como el usuario “apigee”. En algunos casos, es posible que ejecutes componentes de Edge como usuarios diferentes. Por ejemplo, si el router tiene que acceder a puertos privilegiados, como los inferiores a 1,000, debes ejecutar el router como raíz o como un usuario con acceso a esos puertos. O bien, puedes ejecutar un componente como un usuario y otro componente como otro usuario.

Componentes con código común

Los siguientes componentes de Edge comparten código común. Por lo tanto, para revertir cualquiera de estos componentes en un nodo, debes revertir todos los componentes que estén en ese nodo.

  • edge-management-server (servidor de administración)
  • edge-message-processor (Procesador de mensajes)
  • edge-router (router)
  • edge-postgres-server (servidor de Postgres)
  • edge-qpid-server (Servidor Qpid)

Por ejemplo, si tienes el servidor de administración, el router y el procesador de mensajes instalados en el nodo, debes revertir los tres para revertir cualquiera de ellos.

Revertir a una versión de función anterior

Para revertir de 4.19.01 a 4.17.09, debes revertir Postgres, además de revertir los componentes en cada nodo. Si reviertes desde las versiones 4.18.01 o 4.18.05, no es necesario que hagas una reversión de Postgres, ya que el proceso de actualización no incluyó una actualización de Postgres.

Para revertir a una versión de función anterior, haz lo siguiente en cada nodo que aloje el componente:

  1. Descarga el archivo bootstrap.sh de la versión a la que quieres revertir:

    • Para revertir a 4.18.05, descarga bootstrap_4.18.05.sh:
      curl https://software.apigee.com/bootstrap_4.18.05.sh -o /tmp/bootstrap_4.18.05.sh 
    • Para revertir a 4.18.01, descarga bootstrap_4.18.01.sh:
      curl https://software.apigee.com/bootstrap_4.18.01.sh -o /tmp/bootstrap_4.18.01.sh 
    • Para revertir a 4.17.09, descarga bootstrap_4.17.09.sh:
      curl https://software.apigee.com/bootstrap_4.17.09.sh -o /tmp/bootstrap_4.17.09.sh 
  2. Detén el componente para revertirlo:
    1. Para revertir cualquiera de los componentes con código común en el nodo, debes detenerlos todos, como se muestra en el siguiente ejemplo:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server stop
      /opt/apigee/apigee-service/bin/apigee-service edge-router stop
      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor stop
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    2. Para revertir cualquier otro componente en el nodo, detén solo ese componente:
      • /opt/apigee/apigee-service/bin/apigee-service component stop
  3. Si quieres revertir la monetización, desinstálala de todos los nodos del servidor de administración y del procesador de mensajes:
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
  4. Desinstala el componente para revertirlo en el nodo:
    1. Para revertir cualquiera de los componentes con código común en el nodo, debes desinstalarlos todos mediante la desinstalación del grupo de componentes edge-gateway, como se muestra en el siguiente ejemplo:
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    2. Para revertir cualquier otro componente en el nodo, desinstala solo ese componente, como se muestra en el siguiente ejemplo:
      /opt/apigee/apigee-service/bin/apigee-service component uninstall

      En el ejemplo anterior, component es el nombre del componente.

    3. Para revertir Edge Router, debes borrar el contenido del archivo /opt/nginx/conf.d, además de desinstalar el grupo de componentes edge-gateway:
      cd /opt/nginx/conf.d
      rm -rf *
  5. Desinstala la versión 4.19.01 de apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. Instala la versión 4.18.05, 4.18.01 o 4.17.09 de la utilidad apigee-service y sus dependencias. En el siguiente ejemplo, se instala la versión 4.17.09 de apigee-service:
    sudo bash /tmp/bootstrap_4.17.09.sh apigeeuser=uName apigeepassword=pWord

    En el ejemplo anterior, uName y pWord son el nombre de usuario y la contraseña que recibiste de Apigee. Si omites pWord, se te solicitará que lo ingreses.

    Si se produce un error, asegúrate de haber descargado el archivo bootstrap.sh en el paso 1.

  7. Instala apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
  8. Instala la versión anterior del componente:
    /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

    Donde component es el componente que se instalará y configFile es tu archivo de configuración para la versión anterior.

  9. Si estás revirtiendo Qpid, limpia las iptables:
    sudo iptables -F
  10. Repite este proceso para cada nodo que aloje el componente que deseas revertir.

Para revertir de 4.19.01 a 4.17.09, debes revertir Postgres, además de revertir los componentes en cada nodo. Si reviertes desde las versiones 4.18.01 o 4.18.05, no es necesario que hagas una reversión de Postgres, ya que el proceso de actualización no incluyó una actualización de Postgres.

Cómo revertir a una versión de actualización anterior

Para revertir un componente a una versión específica de una actualización, haz lo siguiente en cada nodo que aloje el componente:

  1. Descarga la versión del componente específico:
    /opt/apigee/apigee-service/bin/apigee-service component_version install

    Donde component_version es el componente y la versión de actualización que se deben instalar. Por ejemplo:

    /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.09-0.0.3749 install

    Si usas el repositorio en línea de Apigee, puedes determinar las versiones de componentes disponibles mediante el siguiente comando:

    yum --showduplicates list comp

    Por ejemplo:

    yum --showduplicates list edge-ui
  2. Usa apigee-setup para instalar el componente:
    /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
    .

    Por ejemplo:

    /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile

    Ten en cuenta que solo especificas el nombre del componente cuando lo instalas, no la versión.

  3. Repite este proceso para cada nodo que aloje el componente que deseas revertir.

Para revertir de 4.19.01 a 4.17.09, debes revertir Postgres, además de revertir los componentes en cada nodo. Si reviertes desde las versiones 4.18.01 o 4.18.05, no es necesario que hagas una reversión de Postgres, ya que el proceso de actualización no incluyó una actualización de Postgres.

Revierte la actualización de Postgres 9.6

Si actualizaste a la versión 4.19.01 desde la versión 4.17.09, debes revertir la actualización de Postgres, además de los componentes de Edge.

Para revertir la actualización de Postgres cuando se actualiza Postgres en una configuración de instancia principal en espera, haz lo siguiente:

  • Asciende el nuevo nodo en espera para que se convierta en la instancia principal de Postgres. La nueva instancia principal de Postgres será la misma versión que la instalación de Edge anterior.
  • Configura el nodo en espera anterior para que sea un nodo en espera de la instancia principal nueva. El nodo en espera anterior será la misma versión que la instalación anterior de Edge.
  • Registra los nuevos nodos principal y en espera con los grupos de consumidores y de estadísticas.

Cuando finalice la reversión, el nodo principal anterior ya no será necesario. Luego, puedes retirar el nodo principal anterior.

  1. Asegúrate de que el nuevo nodo Postgres en espera se esté ejecutando:
    /opt/apigee/apigee-service/bin/apigee-all status

    Si Postgres no se está ejecutando, inícialo:

    /opt/apigee/apigee-service/bin/apigee-all start
  2. Asegúrate de que Postgres esté detenido en el nodo principal y el nodo en espera anteriores:
    /opt/apigee/apigee-service/bin/apigee-all status

    Si se está ejecutando Postgres, detenlo:

    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop

  3. Si está instalado, inicia Qpid en el nodo en espera anterior:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
  4. Promueve el nuevo nodo en espera como la instancia principal de Postgres:
    1. Asciende el nodo en espera nuevo para que sea la nueva instancia principal:
      apigee-service apigee-postgresql promote-standby-to-master new_standby_IP

      Si se te solicita, ingresa la contraseña de Postgres para el usuario “apigee”, cuyo valor predeterminado es “postgres”.

    2. Edita el archivo de configuración que usaste para instalar tu versión actual de Edge a fin de especificar lo siguiente:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    3. Configura la nueva instancia principal:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. Vuelve a compilar el nodo en espera anterior:
    1. Edita el archivo de configuración que usaste para instalar tu versión actual de Edge a fin de especificar lo siguiente:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    2. Quita el directorio de datos del nodo en espera anterior:
      cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
    3. Vuelve a configurar el nodo en espera anterior para que sea un nodo en espera de la instancia principal nueva:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    4. Asegúrate de que Postgres se ejecute en el nodo en espera anterior:
      /opt/apigee/apigee-service/bin/apigee-all status

      Si no se está ejecutando, inícialo:

      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  6. Verifica que el nuevo nodo en espera se haya agregado mediante la visualización del archivo /opt/apigee/apigee-postgresql/conf/pg_hba.conf en la nueva instancia principal.
  7. Para ver la información actual de los grupos de consumidores y las estadísticas, ejecuta el siguiente comando en el servidor de administración:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    Este comando muestra el nombre del grupo de estadísticas en el campo name y el nombre del grupo de consumidores en el campo name en consumer-groups. También muestra los UUID de los nodos principales y en espera de Postgres anteriores en los campos postgres-server y datastores. Deberías ver el resultado en el siguiente formato:

    {
      "name" : "axgroup-001",
      "properties" : {
      },
      "scopes" : [ "VALIDATE~test", "sgilson~prod" ],
      "uuids" : {
        "qpid-server" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ],
        "postgres-server" : [
          "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256"
        ]
      },
      "consumer-groups" : [ {
        "name" : "consumer-group-001",
        "consumers" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ],
        "datastores" :
          [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ],
          "properties" : {     }
        }
      ],
      "data-processors" : {
      }
    }

  8. Para obtener la dirección UUID de la instancia principal anterior, ejecuta el siguiente comando curl en el nodo principal anterior:
    curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self

    Deberías ver el UUID del nodo al final del resultado, con el siguiente formato:

    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
  9. Repite el paso anterior para obtener las direcciones IP del nodo en espera anterior y la instancia principal nueva.
  10. Quita los nodos principales y en espera antiguos del grupo de consumidores:
    curl -u sysAdminEmail:password -X DELETE \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores/masterUUID,standbyUUID" -v

    En el ejemplo anterior, axgroup-001 y consumer-group-001 son los nombres predeterminados de los grupos de consumidores y de estadísticas. Las masterUUID,standbyUUID están en el mismo orden en el que aparecieron anteriormente cuando consultaste la información actual de las estadísticas y los grupos de consumidores arriba. Es posible que debas especificarlos como standbyUUID,masterUUID.

    La propiedad datastores para consumer-groups ahora debería estar vacía.

  11. Quita los nodos principales y en espera anteriores del grupo de estadísticas:
    curl -u sysAdminEmail:password -X DELETE \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v

    La propiedad postgres-server en uuids ahora debería estar vacía.

  12. Registra los nuevos nodos principales y en espera de PG con los grupos de consumidores y de estadísticas:
    curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v
    curl -u sysAdminEmail:password -X POST -H "Content-Type:application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores?uuid=masterUUID,standbyUUID" -v
  13. Valida el grupo de estadísticas:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    Deberías ver los UUID de los nuevos nodos principales y en espera enumerados en el grupo de estadísticas y en el grupo de consumidores.

  14. Reinicia el servidor de administración perimetral:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  15. Reiniciar todos los servidores de Qpid:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  16. Reinicia todos los servidores de Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  17. Verifica el estado de replicación mediante la emisión de las siguientes secuencias de comandos en ambos servidores. El sistema debe mostrar resultados idénticos en ambos servidores para garantizar una replicación exitosa:

    En la instancia principal nueva, ejecuta lo siguiente:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    Valida que indique que es el principal. En el nodo en espera anterior:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    Valida que indique que es en espera.

  18. Repite el paso anterior después de realizar varias solicitudes a la API para asegurarte de que los nodos estén sincronizados.
  19. Retira la instancia principal de Postgres anterior con el procedimiento que se indica en Actualiza Apigee Edge 4.16.01/4.16.05 a la versión 4.17.09.

    Como alternativa, puedes desinstalar Qpid de la instancia principal anterior e instalar Qpid en el nodo principal nuevo. Después de desinstalar Qpid, puedes retirar el nodo principal anterior.

Desinstala Qpid de la instancia principal anterior e instala Qpid en la nueva.

Para desinstalar Qpid de la instancia principal anterior e instalarla en la nueva, sigue estos pasos:

  1. Bloquea el acceso al puerto Qpid 5672 en la instancia principal anterior para que los procesadores de mensajes no puedan acceder mediante la ejecución del siguiente comando en todos los procesadores de mensajes:
    iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. Ejecuta el siguiente comando para asegurarte de que la cola de mensajes de Qpid esté vacía. No puedes desinstalar Qpid hasta que se hayan procesado todos los mensajes pendientes:
    qpid-stat -q

    Este comando muestra una tabla que contiene un recuento para msg, msgIn, and msgOut. Todos los mensajes se procesarán cuando msg=0 y msgIn=msgOut.

  3. Determina el UUID del servidor Qpid en la instancia principal anterior ejecutando el siguiente comando en la instancia principal anterior. Guarda esta información para más adelante en el procedimiento:
    curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
  4. Detén Qpid en la instancia principal anterior:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
    .
  5. Desinstalar el servidor de Qpid:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
  6. Quita el servidor de Qpid anterior de los grupos de estadísticas y consumidores:
    curl -u sysAdminEmail:password -X DELETE -H "Content-Type: application/json" -d '' \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers/qpid_UUID" -v
    curl -u sysAdminEmail:password -X DELETE \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v
  7. Quita el servidor Qpid anterior de Zookeeper:
    curl -u sysAdminEmail:password -X DELETE \
      http://ms_IP:8080/v1/servers/qpid_UUID
  8. Instala Qpid en la nueva instancia principal:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
  9. Determina el UUID del servidor Qpid en la instancia principal nueva ejecutando el siguiente comando en la nueva instancia principal. Guarda esta información para más adelante en el procedimiento:
    curl -u sysAdminEmail:password
      http://node_IP::8083/v1/servers/self
  10. Registra el nuevo servidor de Qpid con los grupos de consumidores y de estadísticas:
    curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v
    curl -u sysAdminEmail:password -X POST -H "Content-Type:application/json" -d '' \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers?uuid=qpid_UUID" -v
  11. Reinicia todos los procesadores de mensajes:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  12. Ejecuta el siguiente comando en el nuevo servidor de Qpid para comprobar que se hayan creado colas:
    qpid-stat -q

    Asegúrate de ver que msg, msgIn y msgOut se actualizan a medida que el servidor de Qpid procesa mensajes.

Comunícate con el equipo de asistencia de Apigee Edge si tienes problemas para realizar la reversión.