WSO2

WSO2 API Manager con Ansible

Este artículo detalla cómo escribir un simple playbook de Ansible para descargar el producto WSO2 APIM y luego cambiar el puerto para ejecutar el servidor.

¿Qué es Ansible?

Antes de comenzar a hablar del playbook, te contaré un poco sobre Ansible. Ansible es una herramienta de automatización ampliamente utilizada en la industria de hoy. Facilita tareas de desarrollo como ser implementar, monitorear y configurar aplicaciones. Si eres nuevo en Ansible, te recomendaría darle una mirada a lo siguiente primeros-pasos-con-ansible e ingresar al siguiente artículo para aprender cómo escribir un playbook simple de Ansible cómo-escribir-un-playbook-simple-de-ansible.

Cómo instalar Ansible en WSO2 API Manager

Ahora sí, comencemos con el WSO2 API Manager y el Playbook de Ansible. En este playbook lo que haremos será:

  • Paso 1: Descargar el paquete APIM y luego extraer el producto.
  • Paso 2: Crear un rol “carbon”.
  • Paso 3: Cambiar el offset utilizando una plantilla jinja2
  • Paso 4: Ejecutar el servidor del producto.

Primeros Pasos: Pega el siguiente fragmento de código en el archivo site.yml.

- hosts: localhost

roles:

- carbon

Ahora tenemos que generar carpetas relacionadas al usuario. Para esto, ejecuta el siguiente comando:

ansible-galaxy init carbon

Podrás ver la siguiente estructura de carpetas.

Abre el archivo main.yml en el directorio /tasks y agrega los siguientes comandos.

# tasks file for carbon
- name: Create WSO2 APIM folder
command: mkdir wso2_apim
- name: Download WSO2 API Manager Pack
command: wget --user --ask-password https://product-dist.wso2.com/products/api-manager/2.6.0/wso2am-2.6.0.zip
- name: Move wso2 pack to WSO2 APIM folder
command: mv wso2am-2.6.0.zip ~//wso2_apim
- name: Redirect to WSO2 APIM folder
command: cd wso2_apim
- name: Extract WSO2 Pack
command: unzip -q ~//wso2_apim/wso2am-2.6.0.zip -d ~//wso2_apim

Luego, necesitamos crear una plantilla con jinja2 para modificar el offset. Para ello, debemos crear un archivo carbon.xml.j2 en el directorio /roles/carbon/templates. (Obtuve el archivo de una descarga de un producto APIM y modifiqué la extensión). Cambia el offset a <Offset>{{ offset }}</Offset>. {{ offset }} es un nombre de variable que vamos a modificar. Puedes usar cualquier nombre de variable válido que desees.

A continuación tenemos que definir la variable que hemos declarado en nuestra plantilla. Esto se hace desde main.yml en el directorio /roles/carbon/vars. Pega el siguiente fragmento de código en main.yml.

# vars file for carbon
offset: "2"

El último detalle es agregar los nuevos comandos a la tarea. Abre el archivo /roles/carbon/tasks/main.yml nuevamente y pega el siguiente fragmento de código:

- name: Overwrite file
template:
src: ~//roles/carbon/templates/carbon.xml.j2
dest: ~//wso2_apim/wso2am-2.6.0/repository/conf/carbon.xml
- name: Starting WSO2 API Manager....
command: sh ~//wso2_apim/wso2am-2.6.0/bin/wso2server.sh

Ahora ya terminamos con nuestro playbook y estamos listos para continuar. Ejecuta el siguiente comando desde el directorio del proyecto. (Asegúrate de haber proporcionado tu email en las tareas antes de ejecutar el playbook)

ansible-playbook site.yml

Obtendrás la siguiente salida;

Puedes confirmar el offset del puerto revisando los registros (Abre una nueva pestaña y ejecuta tail -f /<APIM_HOME>/repository/logs/wso2carbon.log) Para apagar el servidor presiona ctrl+c en el playbook.

En resumen, hemos escrito un playbook para descargar el WSO2 API Manager, creado una plantilla con jinja2 para modificar el offset y declarado la variable en vars.  Por último, hemos ejecutado el playbook.

 

Nethmini-Romina
Written By

Nethmini Romina

Software Engineer