En este procedimiento, se describe cómo actualizar un portal existente de Apigee Developer Services (o simplemente el portal) en sus instalaciones.
Determina el procedimiento de actualización correcto
El procedimiento que usarás para actualizar el portal se basa en tu instalación actual:
- Si tu instalación usa Nginx/Postgres, usa Actualiza un portal mediante RPM a continuación.
- Si en tu instalación se usan Apache/MySQL o Apache/MariaDB, consulta Convierte un portal basado en tar en un portal basado en RPM.
Determina tu tipo de instalación actual
Si no estás seguro de tu tipo de instalación actual, usa el siguiente comando para determinarlo:
ls /opt
Si usas Nginx/Postgres, verás los siguientes directorios:
/opt/apigee
y/opt/nginx
.Si usas Apache/MySQL o Apache/MariaDB, estos directorios no deben estar presentes.
/opt/apigee/apigee-service/bin/apigee-all status
Si usas Nginx o Postgres, verás el siguiente resultado:
+ apigee-service apigee-drupal-devportal status OK: apigee-drupal-devportal is up and running + apigee-service apigee-lb status apigee-service: apigee-lb: OK + apigee-service apigee-postgresql status apigee-service: apigee-postgresql: OK
apachectl -S
Si usas Apache/MySQL o Apache/MariaDB, este comando debe mostrar el directorio raíz web del portal, de la siguiente manera:
*:80 192.168.56.102 (/etc/httpd/conf/vhosts/devportal.conf:1)
Directorio de instalación predeterminado
El proceso de actualización supone que el portal se instaló en:
- 4.17.05 y posteriores:
/opt/apigee/apigee-drupal/wwwroot
- Antes de la versión 4.17.05:
/opt/apigee/apigee-drupal
(Nginx) o/var/www/html
(Apache)
Si no instalaste el portal en el directorio predeterminado, modifica las rutas del procedimiento a continuación para usar tu directorio de instalación.
Versiones de actualización compatibles
Este procedimiento de actualización es compatible con las versiones de portal OPDK-17-01.x y posteriores.
Para determinar la versión de tu portal, abre la siguiente URL en un navegador:
http://yourportal.com/buildInfo
Antes de actualizar
Para las instalaciones existentes, si modificaste algún código en Drupal Core o en algún módulo no personalizado, se reemplazarán las modificaciones. Esto incluye, entre otros, cualquier cambio que hayas realizado en .htaccess
.
Debes suponer que cualquier elemento fuera del directorio /sites
es propiedad de Drupal. Una excepción a esta regla es robots.txt
; si este archivo existe en la raíz web, se conservará por ti.
Antes de continuar con la instalación, crea una copia de seguridad de todo tu directorio raíz de Drupal. Después de realizar los pasos de instalación que se describen a continuación, puedes restablecer las personalizaciones desde la copia de seguridad.
Actualiza un portal con RPM
Para actualizar los RPM del portal en un nodo, haz lo siguiente:
- Cambia al directorio de Drupal
/opt/apigee/apigee-drupal
de forma predeterminada:cd /opt/apigee/apigee-drupal
- Crea una copia de seguridad de tu instancia de base de datos de Drupal. El comando
pg_dump
crea una copia de la base de datos:pg_dump --dbname=devportal --host=host_IP_address --username=drupaladmin --password --format=c > /tmp/portal.dmp
.Aquí:
- devportal es el nombre de la base de datos, como lo especifica la propiedad
PG_NAME
en el archivo de configuración de instalación del portal. - host_IP_address es la dirección IP del nodo del portal.
- drupaladmin es el nombre de usuario de Postgres que usa el portal para acceder a la base de datos, como lo especifica la propiedad
DRUPAL_PG_USER
en el archivo de configuración de instalación del portal.
Se te solicitará la contraseña del usuario de Postgres como se define en la propiedad
DRUPAL_PG_PASS
en el archivo de configuración de instalación del portal.Si más adelante deseas restablecer desde la copia de seguridad, usa el siguiente comando:
pg_restore --clean --dbname=devportal --host=localhost --username=apigee < /tmp/portal.dmp
- devportal es el nombre de la base de datos, como lo especifica la propiedad
- Realiza una copia de seguridad de todo tu directorio raíz de Drupal. La ubicación de instalación predeterminada es
/opt/apigee/apigee-drupal
, pero es posible que la hayas cambiado.Si no estás seguro de la ubicación de este directorio, usa el comando
drush status
o la entrada Configuration > Media > File del menú de Drupal para determinar la ubicación del sistema de archivos público y la ruta del sistema de archivos privado (para el siguiente paso). - Crea una copia de seguridad de los archivos en
/opt/apigee/data/apigee-drupal-devportal/private
. - Configura Drupal en el modo de mantenimiento:
- Selecciona Configuración en el menú de Drupal.
- En la página Configuración, selecciona Modo de mantenimiento en Desarrollo.
- Selecciona la casilla Colocar el sitio en modo de mantenimiento.
- Ingresa un mensaje que los usuarios vean durante el mantenimiento.
- Selecciona Guardar configuración.
- Inhabilita SELinux como se describe en Instala la utilidad de configuración de Apigee de Edge.
- Cambia al directorio
/opt
:cd /opt
- Para una actualización en un servidor con conexión a Internet, haz lo siguiente:
- Descarga el archivo
bootstrap_4.19.06.sh
de Edge 4.19.06 en/tmp/bootstrap_4.19.06.sh
:curl https://software.apigee.com/bootstrap_4.19.06.sh -o /tmp/bootstrap_4.19.06.sh
- Instala la utilidad
apigee-service
y las dependencias de Edge 4.19.06:sudo bash /tmp/bootstrap_4.19.06.sh apigeeuser=uName apigeepassword=pWord
En el comando 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.
De forma predeterminada, el instalador verifica que tengas instalado Java 1.8. Puedes usar la opción "C" para continuar sin instalar Java.
- Descarga el archivo
- Para una actualización en un servidor sin conexión a Internet, haz lo siguiente:
- Crea un repositorio local 4.19.06 como se describe en Crea un repositorio de Apigee local.
- Para instalar apigee-service desde un archivo .tar, siga estos pasos:
- En el nodo con el repositorio local, usa el siguiente comando para empaquetar el repositorio local en un solo archivo .tar llamado
/opt/apigee/data/apigee-mirror/apigee-4.19.06.tar.gz
:/opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
- Copia el archivo .tar en el nodo en el que deseas actualizar Edge. Por ejemplo, cópialo en el directorio
/tmp
del nodo nuevo. - En el nodo nuevo, descarta el archivo en el directorio /tmp:
tar -xzf apigee-4.19.06.tar.gz
Con este comando, se crea un directorio nuevo, denominado repositorio, en el directorio que contiene el archivo .tar. Por ejemplo, /tmp/repos.
- Instala la utilidad
apigee-service
y las dependencias de Edge desde/tmp/repos
:sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos
Tenga en cuenta que incluye la ruta de acceso al directorio de repositorios en este comando.
- En el nodo con el repositorio local, usa el siguiente comando para empaquetar el repositorio local en un solo archivo .tar llamado
- Para instalar apigee-service con el servidor web Nginx:
- Configura el servidor web Nginx como se describe en "Instala desde el repositorio mediante el servidor web Nginx" en Instala la utilidad apigee-setup de Edge.
- En el nodo remoto, descarga el archivo
bootstrap_4.19.06.sh
de Edge en/tmp/bootstrap_4.19.06.sh
:/usr/bin/curl http://uName:pWord@remoteRepo:3939/bootstrap_4.19.06.sh -o /tmp/bootstrap_4.19.06.sh
Donde uName y pWord son el nombre de usuario y la contraseña que configuraste antes para el repositorio, y remoteRepo es la dirección IP o el nombre de DNS del nodo del repositorio.
- En el nodo remoto, instala la utilidad
apigee-service
y las dependencias de Edge:sudo bash /tmp/bootstrap_4.19.06.sh apigeerepohost=remoteRepo:3939 apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://
Donde uName y pWord son el nombre de usuario y la contraseña del repositorio.
- Usa
apigee-service
para actualizar la utilidadapigee-setup
:/opt/apigee/apigee-service/bin/apigee-service apigee-setup update
- Ejecuta la utilidad
update
en tu nodo de Postgres:/opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
Donde configFile es el archivo de configuración que usaste para instalar la base de datos de Postgres. El único requisito sobre el archivo de configuración es que el usuario de Apigee debe poder acceder a él o poder leerlo.
- Ejecuta el siguiente comando para quitar los RPM de PHP, pero no las dependencias de los RPM del portal de desarrollo de Apigee de Drupal:
rpm -ev --nodeps $(rpm -qa | grep php | awk '{printf "%s ", $1}')
Este comando hace lo siguiente:
rpm -ev --nodeps
quita los RPM, pero no sus dependencias.rpm -qa
compila la lista de RPM que se quitarán.grep php
busca todos los RPM de PHP.awk '{printf "%s ", $1}'
imprime los nombres de los RPM.
- Ejecuta la utilidad
update
en tu nodo para actualizar el portal:/opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile
Donde configFile es el archivo de configuración que usaste para instalar el portal. El único requisito en el archivo de configuración es que el usuario de Apigee debe poder acceder a la lectura o leerla.
- Ejecuta la secuencia de comandos
update.php
de Drupal abriendo la siguiente URL en una ventana del navegador:http://portal_IP_DNS:8079/update.php
- Inhabilita el modo de mantenimiento:
- Selecciona Configuración en el menú de Drupal.
- En la página Configuración, selecciona Modo de mantenimiento en Desarrollo.
- Anule la selección del cuadro Colocar el sitio en modo de mantenimiento.
- Selecciona Guardar configuración.
Ten en cuenta que el directorio raíz después de la actualización es el siguiente:
/opt/apigee/apigee-drupal/wwwroot
Se completó la actualización. Si la utilidad update
de Apigee cambió a una versión inferior de Drupal, es posible que debas volver a ejecutar la utilidad de actualización de Drupal. Para obtener más información, consulta Vuelve a ejecutar la actualización de Drupal.
Vuelva a ejecutar la actualización de Drupal
Si la ejecución de la utilidad update
de Apigee a fin de actualizar Edge para la nube privada en realidad da como resultado una versión inferior de la versión de Drupal, vuelve a instalar la actualización de Drupal. Este podría ser el caso si actualizaste solo Drupal entre actualizaciones de la nube privada.
Por ejemplo:
- Estabas ejecutando la versión 4.18.05 de Edge para la nube privada, que incluía Drupal 7.59.
- Actualizaste Drupal a 7.64 debido a una actualización de seguridad obligatoria.
- Estás actualizando la nube privada a la versión 4.19.01, que incluye Drupal 7.61.
Como se ilustra en este caso, es posible que la versión de Drupal que usa la utilidad update
de Apigee no haga referencia a la actualización más reciente de Drupal. Como resultado, ahora debes volver a ejecutar la actualización de Drupal para que regrese a la versión posterior.