4.16.09 Processo di rollback

In caso di errore durante un aggiornamento a Edge 4.16.09, puoi eseguire il rollback del componente che ha causato l'errore e riprovare l'aggiornamento. Ad esempio, se l'aggiornamento a Postgres 9.4 non riesce, puoi eseguire il rollback solo dei nodi Postgres e riprovare l'aggiornamento.

Esistono due scenari in cui potresti voler eseguire un rollback:

  1. Esegui il rollback a una release precedente. Ad esempio, dalla versione 4.16.09 alla versione 4.16.05.
  2. Rollback a una versione precedente della stessa release.

Utilizza la procedura riportata di seguito per eseguire un rollback per entrambi gli scenari.

Chi può eseguire il rollback

L'utente che esegue il rollback deve essere lo stesso che ha aggiornato Edge in origine o un utente che esegue l'operazione come root.

Per impostazione predefinita, i componenti Edge vengono eseguiti come utente "apigee". In alcuni casi, potresti eseguire i componenti Edge come utenti diversi. Ad esempio, se il router deve accedere a porte con privilegi, come quelle inferiori a 1000, devi eseguire il router come utente root o come utente con accesso a queste porte. In alternativa, puoi eseguire un componente come un utente e un altro componente come un altro utente.

Quali componenti possono essere sottoposti a rollback

Quando esegui un rollback, tieni presente le seguenti condizioni:

  • I cinque componenti Edge elencati di seguito condividono un codice comune. Pertanto, per eseguire il rollback di uno dei cinque componenti su un nodo, devi eseguire il rollback di uno dei cinque componenti installati sul nodo. Ad esempio, se sul nodo sono installati il server di gestione, il router e il processore di messaggi, per eseguire il rollback di uno di questi devi eseguire il rollback di tutti e tre.
    I cinque componenti che condividono il codice sono:
    • Server di gestione
    • Router
    • processore di messaggi
    • Server Qpid
    • Server Postgres
  • Se esegui l'aggiornamento da Edge 4.16.01, non eseguire il rollback di Cassandra. Questa release di Edge contiene una versione aggiornata di Cassandra. Se esegui il rollback di un componente, lascia Cassandra alla versione 4.16.09.
  • Questa release non contiene una nuova versione di qpidd. Pertanto, non è necessario eseguire il rollback di qpidd.

Rollback della versione 4.16.09

Questa sezione contiene la procedura per eseguire il rollback di Edge 4.16.09 a una versione precedente. Questa sezione è divisa in due parti:

  • Rollback dell'aggiornamento di Postgres alla versione 9.4
    La parte finale di ogni procedura di aggiornamento consiste nell'aggiornare i nodi Postgres alla versione 9.4. Se l'aggiornamento non riesce, puoi utilizzare questa procedura per eseguirne il rollback.
  • Rollback di tutti gli altri componenti Edge
    Utilizza questa procedura per eseguire il rollback di qualsiasi altro componente Edge.

Per eseguire il rollback dell'aggiornamento di Postgres 9.4

Per eseguire il rollback dell'aggiornamento di Postgres durante l'aggiornamento di Postgres in una configurazione master-standby:

  • Promuovi il nuovo nodo di standby affinché diventi il master Postgres. Il nuovo master Postgres sarà della stessa versione della precedente installazione di Edge.
  • Configura il vecchio nodo in standby in modo che sia un nodo in standby del nuovo master. Il vecchio nodo in standby sarà della stessa versione della precedente installazione di Edge.
  • Registra i nuovi nodi master e standby con i gruppi di analisi e consumer.

Al termine del rollback, il vecchio nodo master non sarà più necessario. Puoi quindi dismettere il vecchio nodo master.

  1. Assicurati che il nuovo nodo Postgres in standby sia in esecuzione:
    > /opt/apigee/apigee-service/bin/apigee-all status

    Se Postgres non è in esecuzione, avvialo:
    > /opt/apigee/apigee-service/bin/apigee-all start
  2. Assicurati che Postgres sia arrestato sul nodo master precedente e sul nodo standby precedente:
    > /opt/apigee/apigee-service/bin/apigee-all status

    Se Postgres è in esecuzione, arrestalo:
    > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  3. Se installato, avvia Qpid sul vecchio nodo in standby:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start

    Nota: in molte configurazioni, il vecchio nodo in standby ospiterà solo Postgres, ma non Qpid.
  4. Promuovi il nuovo nodo in standby come master Postgres:
    1. Promuovi il nuovo nodo di standby in modo che diventi il nuovo master:
      > apigee-service apigee-postgresql promote-standby-to-master new_standby_IP

      Se richiesto, inserisci la password Postgres per l'utente "apigee", che per impostazione predefinita è "postgres".
    2. Modifica il file di configurazione utilizzato per installare la versione attuale di Edge per specificare quanto segue:
      # Indirizzo IP del nuovo master:
      PG_MASTER=new_standby_IP
      # Indirizzo IP del nodo old standby
      PG_STANDBY=old_standby_IP
    3. Configura il nuovo master:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. Ricostruisci il vecchio nodo di standby:
    1. Modifica il file di configurazione utilizzato per installare la versione attuale di Edge per specificare quanto segue:
      # Indirizzo IP del nuovo master:
      PG_MASTER=new_standby_IP
      # Indirizzo IP del vecchio standby nodo
      PG_STANDBY=old_standby_IP
    2. Rimuovi la directory di dati sul vecchio nodo standby:
      > cd /opt/apigee/data/apigee-postgresql/pgdata
      > rm -rf *
    3. Riconfigura il nodo di standby precedente in modo che sia un nodo di standby del nuovo master:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    4. Assicurati che Postgres sia in esecuzione sul nodo standby precedente:
      > /opt/apigee/apigee-service/bin/apigee-all status

      Se non è in esecuzione, avvialo:
      > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  6. Verifica che il nuovo nodo standby sia stato aggiunto visualizzando il file /opt/apigee/apigee-postgresql/conf/pg_hba.conf sul nuovo master.
  7. Visualizza le informazioni correnti su analisi e gruppi di consumer eseguendo questo comando sul server di gestione:
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/analytics/groups/ax

    Questo comando restituisce il nome del gruppo di analisi nel campo name e il nome del gruppo di consumer nel campo name in consumer-groups. Restituisce anche gli UUID dei vecchi nodi master e standby di Postgres nel campo postgres-server e nel campo datastores. Dovresti visualizzare un output nel 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. Ottieni l'indirizzo UUID del vecchio master eseguendo il seguente comando cURL sul vecchio nodo master:
    > curl -u sysAdminEmail:password http://<node_IP>:8084/v1/servers/self

    Dovresti vedere l'UUID del nodo alla fine dell'output, nel formato:
    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"


    Nota: il servizio edge-postgres-server deve essere in esecuzione. Se il server Postgres non è in esecuzione, puoi eseguire il comando seguente sul server di gestione per determinare l'UUID:
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/servers?pod=analytics

    L'output di questo comando elenca l'UUID per l'indirizzo IP di ogni nodo Postgres.
  9. Ripeti il passaggio precedente per ottenere gli indirizzi IP del nodo standby precedente e del nuovo master.
  10. Rimuovi i vecchi nodi master e standby dal gruppo di consumer:
    > 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

    dove axgroup-001 e consumer-group-001 sono i nomi predefiniti dei gruppi di analisi e di consumer. masterUUID,standbyUUID sono nello stesso ordine in cui sono apparsi sopra quando hai visualizzato le informazioni correnti su analisi e gruppi di consumer. Potresti doverli specificare come standbyUUID,masterUUID.

    La proprietà datastores per consumer-groups ora dovrebbe essere vuota.
  11. Rimuovi i vecchi nodi master e standby dal gruppo di analisi:
    > 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 proprietà postgres-server in uuids ora dovrebbe essere vuota.
  12. Registra i nuovi nodi master e standby di PG con i gruppi di analisi e consumer:
    > 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. Convalida il gruppo di analisi:
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/analytics/groups/ax

    Dovresti vedere gli UUID dei nuovi nodi master e standby elencati nel gruppo di analisi e nel gruppo di consumer.
  14. Riavvia il server di gestione Edge:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  15. Riavvia tutti i server Qpid:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  16. Riavvia tutti i server Postgres:
    > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  17. Verifica lo stato della replica eseguendo i seguenti script su entrambi i server. Il sistema dovrebbe visualizzare risultati identici su entrambi i server per garantire una replica corretta:

    Sul nuovo master, esegui:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    Verifica che sia indicato che si tratta del master.

    Sul vecchio nodo standby:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    Verifica che sia indicato che si tratta dello standby.
  18. Ripeti il passaggio precedente dopo aver effettuato diverse richieste API per assicurarti che i nodi siano sincronizzati.
  19. Dismettere il vecchio master Postgres seguendo la procedura descritta in Aggiorna Apigee Edge alla versione 4.16.09.

    Nota: se il nodo master precedente eseguiva Qpid, puoi lasciare il server attivo per eseguire Qpid. Assicurati che sia in esecuzione. In caso contrario, avvialo:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server start

    In alternativa, puoi disinstallare Qpid dal vecchio master e installarlo sul nuovo nodo master, come descritto di seguito. Dopo aver disinstallato Qpid, puoi dismettere il vecchio nodo master.

Disinstalla Qpid dal vecchio master e installalo sul nuovo master

Utilizza la seguente procedura per disinstallare Qpid dal master precedente e installarlo sul nuovo master:

  1. Blocca l'accesso alla porta Qpid 5672 sul vecchio master dall'accesso da parte dei processori di messaggi eseguendo il seguente comando su tutti i processori di messaggi:
    > iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. Assicurati che la coda di messaggi Qpid sia vuota eseguendo il seguente comando. Non puoi disinstallare Qpid finché non ha elaborato tutti i messaggi in attesa:
    > qpid-stat -q

    Questo comando mostra una tabella contenente un conteggio per msg, msgIn e msgOut. Tutti i messaggi saranno stati elaborati quando msg=0 e msgIn=msgOut.
  3. Determina l'UUID del server Qpid sul vecchio master eseguendo il seguente comando sul vecchio master. Salva queste informazioni per un secondo momento della procedura:
    > curl -u sysAdminEmail:password http://<node_IP>::8083/v1/servers/self
  4. Arresta Qpid sul vecchio master:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  5. Disinstalla il server Qpid:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
  6. Rimuovi il vecchio server Qpid dai gruppi di analisi e consumer:
    > 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. Rimuovi il vecchio server Qpid da ZooKeeper:
    > curl -u sysAdminEmail:password -X DELETE http://<ms_IP>:8080/v1/servers/qpid_UUID
  8. Installa Qpid sul nuovo master:
    > /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
  9. Determina l'UUID del server Qpid sul nuovo master eseguendo il comando seguente sul nuovo master. Salva queste informazioni per un secondo momento della procedura:
    > curl -u sysAdminEmail:password http://<node_IP>::8083/v1/servers/self
  10. Registra il nuovo server Qpid con i gruppi di analisi e consumer:
    > 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. Riavvia tutti i processori di messaggi:
    > /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  12. Esegui il seguente comando sul nuovo server Qpid per verificare che le code siano state create:
    > qpid-stat -q

    Assicurati che msg, msgIn e msgOut vengano aggiornati man mano che il server Qpid elabora i messaggi.

Per eseguire il rollback dei singoli componenti dalla versione 4.16.09

Nell'ambito del rollback, devi scaricare il file bootstrap.sh per la tua versione attuale di Edge:

  • Per eseguire il rollback alla versione 4.16.05, scarica bootstrap_4.16.05.sh
  • Per eseguire il rollback alla versione 4.16.01, scarica bootstrap.sh

Per ogni nodo che ospita un componente di cui eseguire il rollback:

  1. Arresta il componente per eseguire il rollback:
    1. Se esegui il rollback di uno dei seguenti componenti sul nodo, devi arrestarli tutti: Management Server, Router, processore di messaggi, 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
    2. Se esegui il rollback di un altro componente sul nodo, arresta solo quel componente:
      • > apigee-service comp stop
  2. Se esegui il rollback della monetizzazione, disinstallala da tutti i nodi del server di gestione e del processore di messaggi:
    > apigee-service edge-mint-gateway uninstall
  3. Disinstalla il componente per eseguire il rollback sul nodo:
    1. Se esegui il rollback di uno dei seguenti componenti sul nodo, disinstallali tutti: Management Server, Router, Processore di messaggi, Qpid Server o Postgres Server:
      > apigee-service edge-gateway uninstall
    2. Se esegui il rollback di un altro componente sul nodo, disinstalla solo quel componente:
      > apigee-service comp uninstall
  4. Se esegui il rollback del router, devi eliminare i contenuti di /opt/nginx/conf.d:
    > cd /opt/nginx/conf.d
    > rm -rf *
  5. Per eseguire il rollback del componente:
    1. Disinstalla la versione 4.16.09 di apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
    2. Scarica bootstrap.sh per la release 4.16.01 o 4.16.05:
      Per 4.16.01:
      > curl https://software.apigee.com/bootstrap.sh -o /tmp/bootstrap.sh

      Per 4.16.05:
      > curl https://software.apigee.com/bootstrap_4.16.05.sh -o /tmp/bootstrap.sh
    3. Installa l'utilità apigee-service 4.16.01 o 4.16.05 e le dipendenze:
      > sudo bash /tmp/bootstrap.sh apigeeuser=uName apigeepassword=pWord

      dove uName e pWord sono il nome utente e la password che hai ricevuto da Apigee. Se ometti pWord, ti verrà chiesto di inserirlo.
    4. Installa la versione 4.16.01 o 4.16.05 di apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
    5. Installa la versione 4.16.01 o 4.16.05 del componente:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

      dove comp è il componente da installare e configFile è il file di configurazione 4.16.01 o 4.16.05.
  6. Per eseguire il rollback del componente a una versione specifica della release 4.16.05:
    1. Scarica la versione specifica del componente:
      > /<instal_dir>/apigee/apigee-service/bin/apigee-service comp-version install

      dove comp-version è il componente e la versione da installare. Ad esempio:
      > /<instal_dir>/apigee/apigee-service/bin/apigee-service edge-ui-4.16.05-0.0.3649 install

      Se utilizzi il repository online di Apigee, puoi determinare le versioni dei componenti disponibili utilizzando il seguente comando:
      > yum --showduplicates list comp

      Ad esempio:
      > yum --showduplicates list edge-ui
    2. Utilizza apigee-setup per installare il componente:
      > /<install_dir>/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

      Ad esempio:
      > /<install_dir>/apigee/apigee-setup/bin/setup.sh -p ui -f configFile

      Tieni presente che specifichi il nome del componente solo quando esegui l'installazione.

Contatta l'assistenza Apigee se riscontri problemi durante il rollback.