Modificación de Cloud Formation
DataSunrise proporciona un script dedicado para la implementación de infraestructura HA dentro de Amazon Web Services basado en Amazon Cloud Formation Service. La siguiente plantilla crea todos los recursos necesarios para soportar el entorno HA de DataSunrise (los servidores EC2 bajo el grupo de AutoScaling, bases de datos RDS de Auditoría Configuracional y Diccionario, el Balanceador de Carga, etc.) y puede ser personalizada de acuerdo con las necesidades del cliente.
En este artículo, vamos a mostrar cómo se puede modificar la plantilla de Cloud Formation para soportar la configuración personalizada. Se presentarán 2 escenarios.
Escenario 1.
Lanzamos la actualización menor de DataSunrise y AMIs semanalmente para mantener nuestra solución actualizada y optimizada al máximo. Por ejemplo, actualizar controladores ODBC, corregir algunas vulnerabilidades de la base de datos, actualizar las bibliotecas necesarias, etc. Por lo tanto, nuestros clientes pueden estar obligados a actualizar los AMIs que están utilizando actualmente a la más reciente.
Esto se puede hacer mediante la edición manual de la plantilla. Se proporciona una instrucción detallada a continuación:
- Abrir el archivo de plantilla y proceder a la sección RegionMap:
- Elige la región donde tu entorno está desplegado.
- Procede a nuestro repositorio oficial de GitHub
Actualizamos los archivos de script allí cada semana una vez que la nueva versión de DataSunrise se publica.
- Procede también a la sección RegionMap y la región donde tus recursos están desplegados:
- Puedes actualizar el ID de AMI solo para la región que estás utilizando. Por lo tanto, copia el ID de AMI para la región requerida.
- Procede a tu archivo de plantilla actual y reemplaza el ID de AMI actual para la región requerida con el valor copiado de nuestro repositorio de GitHub.
- Ve a la página de AWS CF y elige la opción para Actualizar tu pila de CF.
- Selecciona Reemplazar plantilla actual y sube la versión editada de tu plantilla (paso 6). Haz clic en Siguiente.
Ahora puedes verificar si el proceso de actualización se completó con éxito. Por ejemplo, si era necesario actualizar los controladores ODBC, puedes realizar una conexión de prueba a tu base de datos objetivo para verificar si se utilizaron los controladores actualizados:
Configuración -> Bases de datos -> Tu_base_de_datos_objetivo -> Prueba de conexión.
Si se utiliza la nueva versión del controlador ODBC, la actualización del AMI se completó con éxito.
De lo contrario, puedes revisar tus pasos o contactarnos para una mayor investigación.
Escenario 2.
A veces nuestros clientes necesitan instalar algunas herramientas adicionales, por ejemplo, controladores ODBC, cambiar la configuración del servidor o aplicar las últimas correcciones de infraestructura. Esto se puede hacer modificando la parte UserData del archivo de plantilla de CF.
Veamos cómo se puede hacer. Configuraremos un controlador ODBC de DB2 que no está incluido por defecto en nuestras imágenes de AWS.
En la plantilla de CF en la sección UserData, se están importando varios scripts que contienen todas las configuraciones necesarias:
Cada uno configura su propio conjunto de componentes ambientales:
- vm-creads.sh – este script es necesario para recuperar y adjuntar un rol IAM a la máquina EC2 actual.
- cf-params.sh – este script se utiliza para transferir los valores de los parámetros de los recursos de la pila de CF al script para que puedan ser utilizados fácilmente durante el flujo de trabajo del script.
- ds-manip.sh – este script es necesario para algunas operaciones administrativas como otorgar permisos al usuario de DataSunrise a cualquier archivo, iniciar/cerrar sesión en la consola web de DataSunrise, etc.
- ds-setup.sh – este script contiene todas las funciones necesarias que se requieren para configurar DataSunrise con éxito. Por ejemplo, configuración de la contraseña de administrador, configuración de la base de datos del diccionario, configuración del proxy, etc.
- aws-ds-setup.sh – este script configura recursos basados en AWS, como métricas de CloudWatch y carga de registros.
- pre-setup.sh – este script es necesario para preparar el entorno para la instalación de DataSunrise: descargar los paquetes necesarios, compilaciones, configurar una licencia para la aplicación DataSunrise, etc.
En el caso de hoy, vamos a instalar el controlador ODBC de DB2 que será utilizado durante la inicialización de la instancia de la base de datos objetivo. Por lo tanto, aplicaremos los cambios al archivo pre-setup.sh.
En nuestro escenario, los comandos necesarios se toman de la documentación oficial de DataSunrise
- Vamos a pegar los comandos necesarios en el archivo pre-setup.sh.
- Pero primero, necesitamos cargar el controlador ODBC de DB2 en el bucket de S3. Así que, por favor, descarga los controladores desde el sitio web oficial. Necesitarás iniciar sesión en tu cuenta de IBM o crear una nueva cuenta. Una vez que el controlador esté descargado, súbelo al bucket de S3, el que especificaste como BackupS3BucketName durante el despliegue del script de Cloud Formation.
- Ahora, vamos a pegar los comandos necesarios como se muestra a continuación:
Aquí están los comandos:
logBeginAct "Instalar controlador ODBC de DB2..." aws s3 cp "s3://$BackupS3BucketName/ibm_data_server_driver_for_odbc_cli_linuxx64_v11.1.tar.gz" ibm_data_server_driver_for_odbc_cli_linuxx64_v11.1.tar.gz --only-show-errors tar -xfv ibm_data_server_driver_for_odbc_cli_linuxx64_v11.1.tar.gz echo "[DB2]" | sudo tee -a /etc/odbcinst.ini echo "Driver = /home/user/clidriver/lib/libdb2o.so" | sudo tee -a /etc/odbcinst.ini echo "Description = DB2 Driver" | sudo tee -a /etc/odbcinst.ini echo "FileUsage = 1" | sudo tee -a /etc/odbcinst.ini echo "DontDLClose = 1" | sudo tee -a /etc/odbcinst.ini RETVAL=$? logEndAct "Resultado de la instalación del controlador ODBC de DB2 - $RETVAL"
- Para monitorear el progreso en la instalación del controlador ODBC, puedes utilizar nuestro mecanismo de registro:
- utiliza la función logBeginAct para iniciar el registro y separar una parte del proceso de instalación de otra:
la línea en la plantilla: logBeginAct “Instalar controlador ODBC de DB2…”
la salida en el archivo cloud-init-output.txt: [DS
]: Instalar controlador ODBC de DB2… * el archivo cloud-init-output.txt es un archivo que almacena todos los mensajes de registro del despliegue del script de Cloud Formation de DataSunrise. Se puede encontrar en /var/log/messages/. Puedes revisarlo cada vez que necesites solucionar problemas de tu despliegue de pila de Cloud Formation.
- una vez que hayas abierto la parte de logBeginAct, dentro de esa parte puedes utilizar la función log para registrar cualquier información o estado en el archivo cloud-init-output.txt.
No la usaremos en nuestra parte pegada, pero puedes echar un vistazo a otro ejemplo:
- Para finalizar la parte de registro puedes introducir:
logEndAct “Resultado de la instalación del controlador ODBC de DB2 – $RETVAL”
*La variable RETVAL se utiliza para verificar el código de salida de la ejecución del comando anterior.
RETVAL=$?
- utiliza la función logBeginAct para iniciar el registro y separar una parte del proceso de instalación de otra:
- Guarda el archivo. Ve a la página de AWS CF y elige la opción para Actualizar tu pila de CF.
- Selecciona Reemplazar plantilla actual y sube la versión editada de tu plantilla (paso 2). Haz clic en Siguiente.
- Reinicia la aplicación y realiza la prueba de conexión para asegurarte de que ahora se está utilizando el controlador de DB2:
La personalización de la plantilla se completó con éxito. La plantilla de Cloud Formation se puede personalizar también para casos de uso adicionales. La mayoría de las modificaciones suelen hacerse en la sección de scripts de UserData. No dudes en contactarnos para recibir asistencia si necesitas ayuda con la personalización de Cloud Formation.