Skip to main content

VIRIDIAN Digital Banking - Ansible 4.0.0

Changelog

  • General: Se implementa la versión 9 de Viridian Digital Banking que tiene los siguientes cambios:
    1. Se ha implementado el componente Redis en la versión: 8.0.3
    2. Se ha actualizado los componentes netcore: de 8 a 9
    3. Se ha actualizado los componentes spring boot a la versión: 3.5.3
    4. Se ha actualizado los componentes Angular a la versión: 20.2.4
    5. Se ha actualizado el ELK a la versión: 9.1.2
    6. Se ha actualizado Kafka a la versión: 8.0.0 y se ha implementado SASL_SSL
    7. Se ha actualizado Vault a la versión: 1.20.1.
  • General: En los endpoints que consume el banco, se agrega la propiedad "key", esto para facilitar las búsquedas en el ELK, inicialmente trabajamos en los siguientes endpoints: - VerifyQRPaymentAdmin: key = trnIdTrn - NotifyQRPaymentAdmin: key = trnIdTrn - NotifyActivityAdmin: key = ClientCode - NotifyMessageAdmin: key = ClientCode
  • General: Se implementa un nuevo código de error para los casos en los que se tiene un lock en la base de datos del Banco: '90151': 'Tenemos un problema temporal, por favor espera unos minutos y vuelve a intentar, si el problema se repite comunícate con nosotros'. Esto con el fin de poder hacer seguimiento de estos problemas.
  • Administración de Usuarios: En Administración de Usuarios, ya no se solicita código de autorización para realizar creaciones, eliminaciones o modificaciones de usuarios. Esto con el fin de facilitar el uso para los empleados de las empresas.
  • Banca Web - General: Se implementa el mismo control aplicado en la Banca Móvil para restringir el acceso a la Banca Web, permitiendo el ingreso únicamente a clientes empresariales.
  • Banca Web - Cobranza: Se realizan los siguientes ajustes en este módulo:
    1. Se cambia el titulo a Cobranzas Masivas
    2. Se cambia la opción "Archivos de cobranza" a "Cargar archivos"
    3. Se cambia la opción "Emails cobranza a "Enviar eMails"
    4. El orden de las pestañas ahora es "Cargar archivos", "Enviar eMails", "Reportes"
  • Transacciones: Se agrega a la tabla "transaction" las columnas para poder almacenar la IP y la geolocalización cuando esta esté presente.

Tareas previas

Selección de versión del release

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook admin.yml -t select-release -e="version=4.0.0"
    info

    Este comando selecciona la versión del release.

Descarga de componentes

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook release.yml -K -t warmup
    info

    Este comando descarga las nuevas versiones de todos los componentes que serán actualizados.

Instrucciones

Habilitar el mantenimiento

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook admin.yml -K -t maintenance-enable
    info

    Este comando habilita el modo mantenimiento.

Cambios en base de datos

  1. Ejecutar el siguiente script:

    ALTER TABLE activation_request ADD charge_request SMALLINT;
    ALTER TABLE activation_request ADD charge_account_code VARCHAR(40);
    ALTER TABLE activation_request ADD charge_account_type_code VARCHAR(10);
    ALTER TABLE additional_operation ADD user_code varchar(40);

    ALTER TABLE [transaction] ADD trace_id varchar(25);
    ALTER TABLE [transaction] ADD order_number varchar(30);

    ALTER TABLE trade_transfer ADD ben_type VARCHAR(20);
    ALTER TABLE trade_transfer ADD ben_first_name VARCHAR(50);
    ALTER TABLE trade_transfer ADD ben_second_name VARCHAR(50);
    ALTER TABLE trade_transfer ADD ben_last_name VARCHAR(50);

    ALTER TABLE trade_beneficiary ADD ben_type VARCHAR(20);
    ALTER TABLE trade_beneficiary ADD ben_first_name VARCHAR(50);
    ALTER TABLE trade_beneficiary ADD ben_second_name VARCHAR(50);
    ALTER TABLE trade_beneficiary ADD ben_last_name VARCHAR(50);

    ALTER TABLE activation_request ADD charge_amount decimal(19,2);
    ALTER TABLE activation_request ADD charge_currency varchar(10);

Cambios en los servidores

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook admin.yml -K -t stop-netcore
  2. En el servidor de administración, ejecutar los siguientes comandos:

    docker rm -f kafka-ui kafka-broker kafka-controller
    sudo rm -rf /opt/viridian/kafka-ui /opt/viridian/kafka-broker /opt/viridian/kafka-controller /opt/viridian/config/vdb
  3. En TODOS los servidores de aplicaciones, ejecutar los siguientes comandos:

    sudo rm -rf /opt/viridian/config/vdb 
    docker rm -f kafka-broker kafka-controller
    sudo rm -rf /opt/viridian/kafka-broker /opt/viridian/kafka-controller

Cambios en local_vars.yml

  1. En el servidor de administración, ejecutar el siguiente comando:

    cp defaults/local_vars.yml defaults/local_vars.yml.bck
  2. En el servidor de administración, editar el archivo defaults/local_vars.yml:

    El contenido del archivo es amplio pero se hará ediciones en esta sección:

    kafka:
    clusterId: 111111
    username: kafka
    password: 222222
    ui: 'true'
    elastic:
    token: 333333
    username: elastic
    password: 444444
    componentUsername: component
    componentPassword: 555555
    apm:
    token: 666666

    Donde: los números representan valores aleatorios ya existentes en el archivo

    Se debe agregar las variables ansible, redis y ajustar las variables de kafka y elastic:

    ansible:        
    ui: false
    username: admin
    password: changeme
    ldap:
    bindDn: changeme
    bindPassword: changeme
    server: changeme
    searchDn: changeme
    searchFilter: changeme
    redis:
    password: changeme
    clusterPassword: changeme
    adminPassword: changeme
    componentPassword: changeme
    insightPassword: changeme
    kafka:
    clusterId: 111111
    uiPassword: 222222
    componentPassword: changeme
    adminPassword: changeme
    clusterPassword: changeme
    elastic:
    token: 333333
    adminPassword: 444444
    componentPassword: 555555
    apmToken: 666666

Cambios en certificados SSL

  1. En el servidor de administración, asegurarse de que el archivo cert.pem dentro del directorio viridian-ansible-bsol/tls, contiene el fullchain:

    -----BEGIN CERTIFICATE-----
    Certificado del servidor
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    Certificado intermedio 1
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    Certificado intermedio 2 (si fuera necesario)
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    Certificado CA
    -----END CERTIFICATE-----
  2. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook tls.yml -K -t deploy
    info

    Este comando deploya el certificados SSL y su llave privada en todos los servidores.

Cambios en shorewall

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook os.yml -K -t shorewall-deploy

Cambios en redis

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook redis.yml -K -t setup,deploy,init

Cambios en kafka

  1. En el servidor de administración, ejecutar los siguientes comandos ansible:

    ansible-playbook kafka.yml -K -t setup,deploy
    ansible-playbook admin.yml -K -t kafka-topics-create

Cambios en vault

  1. En el servidor de administración, ejecutar los siguientes comandos ansible:

    ansible-playbook vault.yml -K -t backup
    ansible-playbook vault.yml -K -t deploy
    ansible-playbook vault.yml -K -t unseal
  2. En el path secrets/viridian/application, se deben agregar nuevas variables:

        "redis.user": "component",
    "redis.password": "obtener el valor de la variable redis.componentPassword en local_vars.yml",
    "kafka.componentUsername": "component",
    "kafka.componentPassword": "obtener el valor de la variable kafka.componentPassword en local_vars.yml",
  3. En el path secrets/viridian/vdb-notifications-hosted, se deben agregar nuevas variables:

        "huawei.externalApp.clientId": "110753033",
    "huawei.externalApp.clientSecret": "8a8c0dc942bb84a9c57d32f9bc12de222be6f5fc97cbd0d5afa8dbd2fa5aefe9",

Cambios en elk

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook elk.yml -K -t init,deploy

Cambios en proxy

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook proxy.yml -K -t adm-deploy

Cambios en componentes

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook release.yml -K -t deploy -e "type=cold"

Limpieza de archivos generados por el release

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook admin.yml -K -t cleanup

Verificación de componentes

  1. En los servidores de aplicaciones, ejecutar el siguiente comando:

    docker ps -vs
    info

    Este comando muestra el estado de todos los docker containers ordenados alfabéticamente.

  2. Revisar el output del comando y asegurarse de que todos los docker containers tengan un status UP y no haya ningún docker container detenido.

Deshabilitar el mantenimiento

  1. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook admin.yml -K -t maintenance-disable
    info

    Este comando deshabilita el modo mantenimiento.

Resumen de versiones

componenterelease 3.0.6release 4.0.0
viridian-config-properties8.3.09.1.2
vdb-config-properties8.3.1removido
server-config8.1.09.1.0
server-eureka8.1.09.1.0
vdb-routes-public8.1.09.1.0
vdb-routes-internal8.1.09.1.0
vdb-routes-bank8.1.09.1.0
gateway-public8.5.09.1.0
gateway-internal8.3.09.1.0
bank-gateway8.4.09.1.0
bank-service8.1.09.1.0
batchpayments-api8.1.09.1.0
batchpayments-hosted8.2.09.1.0
beneficiaries-api8.1.09.1.0
digitalpay-qr8.1.19.1.0
manager-api8.2.09.1.2
manager-hosted8.1.09.1.0
notifications-hosted8.1.09.1.0
onboarding-api8.1.09.1.0
servicepayments-api8.2.09.1.0
statements-api8.1.09.1.0
trade-api8.1.19.1.0
transactions-api8.1.09.1.2
transactions-hosted8.1.09.1.0
utilities-api8.1.09.1.0
frontend-vdb5.1.49.1.1
frontend-admin1.10.19.1.0