Edge para nube privada v. 4.17.01
En caso de que se produzca un error durante una actualización a Edge 4.17.01, puedes revertir el componente que causó el error y, luego, volver a intentar la actualización. Por ejemplo, si la actualización a Postgres 9.4 falla, puedes revertir solo los nodos de Postgres y volver a intentar la actualización.
Existen dos situaciones en las que es posible que quieras realizar una reversión:
- Revierte a una versión anterior. Por ejemplo, de la versión 4.17.01 a la 4.16.09.
- Revertir a una versión anterior de la misma versión
Usa el siguiente procedimiento para realizar una reversión en ambos casos.
Quién puede realizar la reversión
El usuario que realiza la reversión debe ser el mismo que actualizó Edge originalmente o un usuario que se ejecuta como 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 con privilegios, como los que están por debajo de 1000, debes ejecutar el router como raíz o como un usuario con acceso a esos puertos. También puedes ejecutar un componente como un usuario y otro componente como otro usuario.
Qué componentes se pueden revertir
Ten en cuenta las siguientes condiciones cuando realices una reversión:
- Los cinco componentes de Edge que se indican a continuación comparten código común. Por lo tanto, para revertir cualquiera de los cinco componentes de un nodo, debes revertir cualquiera de los cinco instalados en el nodo. Por
ejemplo, si tienes Management Server, Router y Message Processor instalados en el
nodo, para revertir cualquiera de ellos, debes revertir los tres.
Los cinco componentes que comparten código son los siguientes:- Servidor de administración
- Router
- Message Processor
- Servidor Qpid
- Servidor de Postgres
- Si actualizas desde Edge 4.16.01, no reviertas Cassandra. Esta versión de Edge contiene una versión actualizada de Cassandra. Si reviertes algún componente, deja Cassandra en la versión 4.17.01.
Revierte la versión 4.17.01
En esta sección, se incluye el procedimiento para revertir Edge 4.17.01 a una versión anterior. Esta sección se divide en dos partes:
- Si solo actualizas desde la versión 4.16.01 o 4.16.05, revierte la actualización de Postgres
a la versión 9.4
La parte final de cada procedimiento de actualización desde la versión 4.16.01 o 4.16.05 es actualizar los nodos de Postgres a la versión 9.4. Si esa actualización falla, puedes usar este procedimiento para revertirla. - Revierte todos los demás componentes de Edge
Usa este procedimiento para revertir cualquier otro componente de Edge.
Para revertir la actualización de Postgres 9.4, haz lo siguiente:
Para revertir la actualización de Postgres cuando actualizas Postgres en una configuración de principal-en espera, debes hacer lo siguiente:
- Ascender el nuevo nodo en espera para que se convierta en el nodo principal de Postgres La nueva instancia principal de Postgres tendrá la misma versión que tu instalación anterior de Edge.
- Configura el nodo en espera anterior para que sea un nodo en espera del nodo principal nuevo. El nodo en espera anterior tendrá la misma versión que la instalación de Edge anterior.
- Registra los nuevos nodos principal y en espera con los grupos de consumidores y de estadísticas.
Cuando termines con la reversión, el nodo principal anterior ya no será necesario. Luego, puedes retirar el nodo principal anterior.
- Asegúrate de que el nuevo nodo de Postgres en espera esté en ejecución:
> /opt/apigee/apigee-service/bin/apigee-all status
Si Postgres no se está ejecutando, inícialo:
> /opt/apigee/apigee-service/bin/apigee-all start - Asegúrate de que Postgres esté detenido en el nodo principal anterior y en el nodo en espera anterior:
> /opt/apigee/apigee-service/bin/apigee-all status
Si Postgres se está ejecutando, detenlo:
> /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop - Si está instalado, inicia Qpid en el nodo en espera anterior:
> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
Nota: En muchas configuraciones, el nodo en espera anterior solo alojará Postgres, pero no Qpid. - Asciende el nuevo nodo en espera como el nodo principal de Postgres:
- Asciende el nodo en espera nuevo para que sea el nuevo 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", que de forma predeterminada es "postgres". - Edita el archivo de configuración que usaste para instalar la versión actual de Edge a fin de especificar lo siguiente:
# dirección IP de la new master:
PG_MASTER=new_standby_IP
# dirección IP del old standby node
PG_STANDBY=old_standby_IP - Configura la nueva instancia principal:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
- Asciende el nodo en espera nuevo para que sea el nuevo principal:
- Vuelve a compilar el nodo en espera anterior:
- Edita el archivo de configuración que usaste para instalar la versión actual de Edge a fin de especificar lo siguiente:
# dirección IP del nuevo master:
PG_MASTER=new_standby_IP
# dirección IP del nodo standby antiguo
PG_STANDBY=old_standby_IP - Quita el directorio de datos en el nodo en espera anterior:
> cd /opt/apigee/data/apigee-postgresql/pgdata
> rm -rf * - Vuelve a configurar el nodo en espera anterior para que sea un nodo en espera del nuevo nodo principal:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile - Asegúrate de que Postgres se esté ejecutando 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
- Edita el archivo de configuración que usaste para instalar la versión actual de Edge a fin de especificar lo siguiente:
- Para verificar que se haya agregado el nuevo nodo en espera, consulta el archivo /opt/apigee/apigee-postgresql/conf/pg_hba.conf en el nuevo nodo principal.
- Ejecuta el siguiente comando en el servidor de administración para ver la información actual del grupo de consumidores y de estadísticas:
> 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 devuelve los UUID de los nodos principal y en espera de Postgres antiguos en el campo postgres-server y en el campo datastores. Deberías ver un resultado con 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" : {
}
} - Obtén la dirección UUID de la instancia principal anterior ejecutando el siguiente comando de 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"
Nota: El servicio edge-postgres-server debe estar en ejecución. Si el servidor de Postgres no se está ejecutando, puedes ejecutar el siguiente comando en el servidor de administración para determinar el UUID:
> curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/servers?pod=analytics
En el resultado de este comando, se muestra el UUID de la dirección IP de cada nodo de Postgres. - Repite el paso anterior para obtener las direcciones IP del nodo en espera antiguo y del nuevo principal.
- Quita los nodos principal 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 que axgroup-001 y consumer-group-001 son los nombres predeterminados de los grupos de consumidores y de estadísticas. masterUUID,standbyUUID están en el mismo orden en que aparecieron antes, cuando viste la información actual de las estadísticas y del grupo de consumidores. Es posible que debas especificarlos como standbyUUID,masterUUID.
La propiedad datastores de consumer-groups ahora debería estar vacía. - Quita los nodos principal y en espera antiguos 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. - Registra los nodos principales y en espera de PG nuevos 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 - 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 nodos principal y en espera nuevos que aparecen en el grupo de estadísticas y el grupo de consumidores. - Reinicia el servidor de administración de Edge:
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart - Reinicia todos los servidores de Qpid:
> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart - Reinicia todos los servidores de Postgres:
> /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart - Verifica el estado de la replicación ejecutando 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 nueva instancia principal, ejecuta lo siguiente:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
Valida que indique que es la instancia principal.
En el nodo en espera anterior:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
Valida que indique que está en espera. - Repite el paso anterior después de realizar varias solicitudes a la API para asegurarte de que los nodos estén sincronizados.
- Retira el Postgres principal anterior con el procedimiento que se describe en Actualiza Apigee Edge a la versión 4.16.09.
Nota: Si el nodo principal anterior ejecutaba Qpid, puedes dejar ese servidor activo para ejecutar Qpid. Asegúrate de que se esté ejecutando. Si no es así, inícialo:
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server start
Como alternativa, puedes desinstalar Qpid de la instancia principal anterior y, luego, instalar Qpid en el nodo principal nuevo, como se describe a continuación. Después de desinstalar Qpid, puedes retirar el nodo principal anterior.
Desinstala Qpid de la instancia principal anterior y, luego, instálalo en la nueva.
Usa el siguiente procedimiento para desinstalar Qpid de la instancia principal anterior y, luego, instalarlo en la nueva:
- Bloquea el acceso al puerto 5672 de Qpid en la instancia principal anterior desde el acceso de los Message Processors. Para ello,
ejecuta el siguiente comando en todos los Message Processors:
> iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP - Asegúrate de que la cola de mensajes de Qpid esté vacía. Para ello, ejecuta el siguiente comando. No puedes
desinstalar Qpid hasta que haya procesado todos los mensajes pendientes:
> qpid-stat -q
Este comando muestra una tabla que contiene un recuento de msg, msgIn y msgOut. Todos los mensajes se habrán procesado cuando msg=0 y msgIn=msgOut. - Determina el UUID del servidor de 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 - 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 - Desinstala 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 - Quita el servidor de Qpid anterior de los grupos de consumidores y estadísticas:
> 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 - Quita el servidor de Qpid anterior de Zookeeper:
> curl -u sysAdminEmail:password -X DELETE http://<ms_IP>:8080/v1/servers/qpid_UUID - Instala Qpid en la nueva instancia principal:
> /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile - Determina el UUID del servidor de Qpid en la instancia principal nueva ejecutando el siguiente comando en
la instancia principal nueva. Guarda esta información para más adelante en el procedimiento:
> curl -u sysAdminEmail:password http://<node_IP>::8083/v1/servers/self - Registra el nuevo servidor de Qpid con los grupos de consumidores y 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 - Reinicia todos los Message Processors:
> /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart - Ejecuta el siguiente comando en el nuevo servidor de Qpid para verificar que se hayan creado las colas:
> qpid-stat -q
Asegúrate de que se actualicen msg, msgIn y msgOut a medida que el servidor de Qpid procese los mensajes.
Para revertir componentes individuales de la versión 4.17.01, haz lo siguiente:
Como parte de la reversión, debes descargar el archivo bootstrap.sh para tu versión actual de Edge:
- Para revertir a la versión 4.16.09, descarga bootstrap_4.16.09.sh
- Para volver a la versión 4.16.05, descarga bootstrap_4.16.05.sh
- Para revertir a la versión 4.16.01, descarga bootstrap.sh
Para cada nodo que aloja un componente que se revertirá, haz lo siguiente:
- Detén el componente para revertir:
-
Si reviertes cualquiera de los siguientes componentes en el nodo, debes
detenerlos todos: Management Server, Router, Message Processor, Qpid Server o Postgres
Server:
- > apigee-service edge-management-server stop
- > apigee-service edge-router stop
- > apigee-service edge-message-processor stop
- > apigee-service edge-qpid-server stop
- > apigee-service edge-postgres-server stop
-
Si reviertes cualquier otro componente en el nodo, detén solo ese
componente:
- > apigee-service comp stop
-
Si reviertes cualquiera de los siguientes componentes en el nodo, debes
detenerlos todos: Management Server, Router, Message Processor, Qpid Server o Postgres
Server:
- Si reviertes la Monetización, desinstálala de todos los nodos de Management Server y Message Processor:
> apigee-service edge-mint-gateway uninstall - Desinstala el componente para revertir el nodo:
- Si reviertes cualquiera de los siguientes componentes en el nodo,
desinstálalos todos: Management Server, Router, Message Processor, Qpid Server o Postgres
Server:
> apigee-service edge-gateway uninstall - Si reviertes cualquier otro componente en el nodo, desinstala solo ese
componente:
> apigee-service comp uninstall - Si reviertes el router, debes borrar el contenido de /opt/nginx/conf.d:
> cd /opt/nginx/conf.d
> rm -rf *
- Si reviertes cualquiera de los siguientes componentes en el nodo,
desinstálalos todos: Management Server, Router, Message Processor, Qpid Server o Postgres
Server:
-
Para revertir el componente, haz lo siguiente:
- Desinstala la versión 4.17.01 de apigee-setup:
> /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall - Descarga bootstrap.sh para la versión 4.16.01, 4.16.05 o 4.16.09:
Por ejemplo, para 4.16.09:
> curl https://software.apigee.com/bootstrap_4.16.09.sh -o /tmp/bootstrap_4.16.09.sh - Instala la utilidad apigee-service 4.16.01, 4.16.05 o 4.16.09 y las dependencias.
Por ejemplo, para 4.16.09:
> sudo bash /tmp/bootstrap_4.16.09.sh apigeeuser=uName apigeepassword=pWord
donde 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. - Instala la versión 4.16.01, 4.16.05 o 4.16.09 de apigee-setup:
> /opt/apigee/apigee-service/bin/apigee-service apigee-setup install - Instala la versión 4.16.01, 4.16.05 o 4.16.09 del componente:
> /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
En el ejemplo anterior, comp es el componente que se instalará y configFile es tu archivo de configuración 4.16.01, 4.16.05 o 4.16.09. - Si reviertes Qpid, vacía iptables:
> sudo iptables -F
- Desinstala la versión 4.17.01 de apigee-setup:
-
Para revertir el componente a una versión específica de la versión 4.17.01, haz lo siguiente:
- Descarga la versión específica del componente:
> /opt/apigee/apigee-service/bin/apigee-service comp-version install
en el que comp-version es el componente y la versión que se instalarán. Por ejemplo:
> /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.01-0.0.3749 install
Si usas el repositorio en línea de Apigee, puedes determinar las versiones de los componentes disponibles con el siguiente comando:
> yum --showduplicates list comp
Por ejemplo:
> yum --showduplicates list edge-ui - 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 realizas la instalación.
- Descarga la versión específica del componente:
Comunícate con el equipo de asistencia de Apigee si tienes problemas para revertir los cambios.