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 WSO2 API Manager utilizando Ansible
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.