Cómo deployar aplicación BWCE con Maven en Azure Kubernetes - Container Registry desde Jenkins
Hola
Diferente al post anterior, en esta ocasión voy a describir cómo desplegar un servicio REST de TIBCO BusinessWorks Container Edition desde Jenkins usando el plugin de Maven. El deployment será en Azure Kubernetes con un Container registry también en Microsoft Azure.
Prerrequisitos
-Código fuente de la aplicación en un repositorio de git
-Maven 3.8.5 -Jenkins instalado y configurado con Maven plugin y ruta de instalación de Maven -Microsoft Azure CLI conectado a Microsoft Azure -Docker (En este ejercicio no se requiere ya que no estoy creando ninguna imagen). Se da por entendido que la imagen ya existe en el Azure Container Registry
Procedimiento
1.- Agregar plugin de Maven: Maven Integration plugin
2.- Ir a Administrar Jenkins > Configuración de herramientas
En la sección Maven, clic en el botón Maven Installations
Ingresar un Nombre
Ingresar la ruta de instalación de Maven (ej. /usr/local/Cellar/maven/3.8.5/libexec/)
3.- Desde Jenkins crear un proyecto de tipo Maven
En la configuración del proyecto, ingresar los siguiente información:
General Github project: Liga al repositorio git donde se encuentra el código de la aplicación (ej. https://github.com/compensar/streaming/)
Source Code Management Git > Repositories > Repository URL: Liga al repositorio git donde se encuentra el código de la aplicación (ej. https://github.com/compensar/streaming/) Branches to build: Nombre del branch (ej. */master)
Build Root POM: Path al archivo POM principal (ej. OrderMgmt.application.parent/pom.xml) Goals and options: Maven goals a ejecutar (initialize com.tibco.plugins:bw6-maven-plugin:bwfabric8json fabric8:resource fabric8:apply -e -X)
4.- Guardar el proyecto
5.- Con esas configuraciones clic en Build Now para ejecutar el proyecto.
Cómo desplegar aplicación BWCE con Maven en Azure Kubernetes - Container Registry desde TIBCO Business Studio
Hola
En este post voy a describir cómo desplegar una servicio REST de TIBCO BusinessWorks Container Edition desde TIBCO Business Studio usando el plugin de Maven en Azure Kubernetes con un Container registry también en Microsoft Azure.
Prerrequisitos
-TIBCO BusinessWorks Container Edition 2.7.0 con Maven plugin. -Microsoft Azure CLI conectado a Microsoft Azure -Maven 3.8.5 (Si se quiere ejecutar fuera de TIBCO Business Studio) -Docker (En este ejercicio no se requiere ya que no estoy creando ninguna imagen). Se da por entendido que la imagen ya existe en el Azure Container Registry
Procedimiento
Es necesario generar el archivo POM del proyecto para poder realizar un despliegue con Maven.
1.- Clic derecho sobre la aplicación y seleccionar Generate POM for Application
Ingresar la información referente al proyecto.
Deploy options: Docker
Image name: Imagen de Docker (ej. miazureregistry.azurecr.io/imagename:tag)
BWCE image: Imagen base de Docker (ej. miazureregistry.azurecr.io/imagename:tag)
Run on Docker host. Ingresar puertos usados por la aplicación.
Select platform: Kubernetes/Openshift (Para un servicio de AKS)
Deployment name
Service name
Service Type
Container Port
Los siguientes archivos de propiedades son generados sobre la carpeta de la aplicación:
docker-dev.properties
docker-host-env-dev.properties
docker-host-env-prod.properties
docker-prod.properties
k8s-dev.properties
k8s-prod.properties
2.- Desde TIBCO Business Studio seleccionar Run > Run configurations
3.- Crear un Maven build configuration con los siguientes goals:
Los goals arriba especificados van a realizar las siguientes tareas:
Clean: Borra los archivos, folders generados de una construcción anterior de recursos. Initialize: Carga los valores especificados en los archivos de configuración (docker-dev.properties, k8s-dev.properties)
com.tibco.plugins:bw6-maven-plugin:bwfabric8json: Genera los templates .yml para el deployment
fabric8:resource: Crea los archivos yml para el deployment (target/classes/META-INF/fabric8/kubernetes/kubernetes.yml)
fabric8:apply: Ejecuta el deployment en Kubernetes
Las properties se especifican en el formato -Dpropiedad:
-Ddocker.property.file=docker-dev.properties
-Dk8s.property.file=k8s-dev.properties
-e -X son parámetros para ver logs con detalles y errores
4.- Clic en Ejecutar
5.- Opcionalmente se puede ejecutar el despliegue fuera de TIBCO Business Studio teniendo instalado Maven.
Para esto, ir a la ruta donde se encuentra el archivo POM principal sobre la carpeta de aplicación.parent y ejecutar la misma linea de goals con el prefijo de Maven (mvn)
La instrucción asigna permisos de Pull (AcrPull) sobre el Managed Identity micluster-agentpool con lo que los Pod ya puede jalar la imagen exitosamente.
Una vez hecho, esperar algunos minutos para que se replique el cambio y después checar nuevamente:
jangel-MBP13:~ jhernand$ az aks check-acr --name micluster --resource-group jhernand --acr miazureregistry.azurecr.io
Merged "micluster" as current context in /var/folders/k1/cbw5hqpd0m3d6s9sxf24m7br0000gq/T/tmp18_0ut_a
Error attaching, falling back to logs: unable to upgrade connection: container canipull-fdb7ecea-32f1-41e9-ac31-4b1224a38f28 not found in pod canipull-fdb7ecea-32f1-41e9-ac31-4b1224a38f28_default
[2022-05-17T16:22:25Z] Checking host name resolution (miazureregistry.azurecr.io): SUCCEEDED
[2022-05-17T16:22:25Z] Canonical name for ACR (miazureregistry.azurecr.io): r0419eus-3.eastus.cloudapp.azure.com.
[2022-05-17T16:22:25Z] ACR location: eastus
[2022-05-17T16:22:25Z] Loading azure.json file from /etc/kubernetes/azure.json
Cómo subir imagen de Docker a Container Registry de Azure
Hola.
En este post voy a explicar cómo subir una imagen de Docker a un Container registry de Microsoft Azure.
Prerequisitos
Cuenta en azure con una suscripción y un resource group válidos.
Crear un Container Registry en Azure y obtener el nombre del Login Server
Azure CLI instalado.
Docker local instalado con la imagen que queremos subir al Container registry.
Procedimiento
Desde una terminal ingresar los comandos de Azure CLI
1.- Hacer login en el Container Registry con el siguiente comando y el nombre del Container Registry
az acr login -n miazureregistry
Para ver todos los container registries, usa el siguiente comando.
az acr list
2.- Verificar que la imagen de Docker a subir está disponible con el siguiente comando.
docker images
3.- Etiquetar la imagen a subir utilizando el nombre del Login Server de Azure como en el siguiente comando:
docker tag tibco/bwce miazureregistry.azurecr.io/tibco/bwce
4.- Hacer Docker push para subir la imagen al Container registry de Azure
docker push miazureregistry.azurecr.io/tibco/bwce
5.- Para verificar que la imagen fue subida, ejecutar el siguiente comando. También se puede verificar desde la interfaz gráfica en el portal de Azure.
az acr repository list --name miazureregistry
También dejo aquí abajo video de cómo realizar este procedimiento.
FTP connection error: Connection timed out after 20 seconds of inactivity
Hola.
Estoy obteniendo el siguiente error al intentar conectarme a un sitio FTP básico en IIS. El sitio FTP está configurado y puedo accederlo internamente desde el servidor mismo pero no desde fuera. El sitio no tiene seguridad activada (No SSL)
Obtengo el siguiente mensaje al utilizar un cliente de FTP (FileZilla)
Connection timed out after 20 seconds of inactivity
Status: Resolving address of medicamentos.bo
Status: Connecting to 72.167.20.94:21...
Error: Connection timed out after 20 seconds of inactivity
Error: Could not connect to server
Para resolver este problema, realicé los siguientes pasos:
1.- En el sitio FTP seleccionar FTP Firewall Support.
En el campo de External IP Address of Firewall introducir la IP publica del servidor
2.- Buscar Servicios, desde el Inicio y reiniciar el servicio Microsoft FTP Service. Este reinicio es muy importante porque los cambios hechos en IIS no se tomarán hasta que se reincide el servicio FTP.
3.- En el programa cliente de FTP verificar que la opción Encryption sea: Only use plain FTP (insecure) como en la siguiente imagen.
4.- Clic en conectar y ya deben poder acceder al sitio FTP.
Status: Resolving address of medicamentos.bo
Status: Connecting to 72.167.20.94:21...
Status: Connection established, waiting for welcome message...
Status: Plain FTP is insecure. Please switch to FTP over TLS.
Status: Logged in
Status: Retrieving directory listing of "/"...
Status: Calculating timezone offset of server...
Status: Timezone offset of server is -14400 seconds.