Skip to main content

VIRIDIAN Digital Banking - Ansible 2.0.0

Checkout del tag asociado a la versión del release

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

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

    git fetch --all --tags -f
  3. En el servidor de administración, dependiendo del entorno, ejecutar el siguiente comando:

    git checkout 2.0.0-prod

Cambios en base de datos

  1. Ejecutar el siguiente script:

    ALTER TABLE [man_customer_authorization] ADD [date_start] [date];

    ALTER TABLE [man_account] ADD [fk_user_holding] [bigint];

    ALTER TABLE [man_customer_authorization] ADD [date_end] [date];

    ALTER TABLE [activation_request] ADD [vfk_user] [bigint];

    ALTER TABLE [activation_request] ADD [vfk_customer] [bigint];

    ALTER TABLE [company_service] ADD [change_tax_data] [varchar](10);

    ALTER TABLE [company_service] ADD [use_all_invoice_fields] [varchar](10);

    ALTER TABLE [notification] ADD [display_times] [int];

    ALTER TABLE [device] ADD [activation_trn_id_trn] [char](25);

    ALTER TABLE [device] ADD [activation_date] [datetime];

    ALTER TABLE [device] ADD [challenge] [varchar](100);

    ALTER TABLE [device] ADD [holding_aware] [smallint] DEFAULT 0;

    ALTER TABLE [device] ADD [app_check_token_expire_date] [datetime];

    ALTER TABLE [device] ADD [app_check_token] [varchar](2048);

    ALTER TABLE [device] ADD [totp_secret] [varchar](250);

    ALTER TABLE [transfer] ADD [vfk_user_holding_source] [bigint];

    ALTER TABLE [transfer] ALTER COLUMN [doc_id_type_target] [char](10);

    ALTER TABLE [man_user] ADD [status_internal] [varchar](50);

    ALTER TABLE [transfer] ADD [vfk_user_holding_target] [bigint];

    ALTER TABLE [transaction] ADD [account_code] [varchar](40);

    ALTER TABLE [transaction] ADD [account_type_code] [varchar](5);

    ALTER TABLE [beneficiary] ADD [beneficiary_bank_id] [varchar](40);

    ALTER TABLE [beneficiary] ADD [upsert_trn_id_trn] [varchar](25);

    ALTER TABLE [company_service_favorites] ADD [last_notification_date] [datetime];

    ALTER TABLE [device] DROP COLUMN [app_check_token_issued_date];

    ALTER TABLE [device] DROP COLUMN [biometric_activation_date];

    ALTER TABLE [device] DROP COLUMN [biometric_activation_trn_id_trn];

    ALTER TABLE [collect] ALTER COLUMN [account_holder_name] [varchar](80);

    ALTER TABLE [service_payment] ALTER COLUMN [amount] [decimal](19, 2);

    ALTER TABLE [notification] ALTER COLUMN [title] [varchar](80) NOT NULL;

    ALTER TABLE [notification] ALTER COLUMN [vfk_transaction] [char](25) NOT NULL;

    ALTER TABLE [notification] ALTER COLUMN [body] [varchar](250) NOT NULL;

    ALTER TABLE [notification] ALTER COLUMN [category_code] [varchar](20) NOT NULL;

    ALTER TABLE [notification] ALTER COLUMN [category_name] [varchar](80) NOT NULL;

    ALTER TABLE [authorization_code] ALTER COLUMN [code] [varchar](100);

    ALTER TABLE [security_event] ALTER COLUMN [firebase_id] [varchar](200) NULL;

    ALTER TABLE [notification_image] ALTER COLUMN [image_base64] [varchar](MAX) NOT NULL;

    ALTER TABLE [service_payment] ALTER COLUMN [service_credentials] [varchar](MAX);

    INSERT INTO man_action (code, subtype_code, [order], status, user_create, date_create, user_update, date_update, admin_user_create, admin_user_update, admin_date_update) VALUES ('ADD_BENEFICIARY', 'OPERATION', '301', 'ACTIVE', NULL, GETDATE(), NULL, NULL, 'admin', NULL, NULL);

    UPDATE man_user SET status_internal = status WHERE status is not null;

    UPDATE man_user SET status = 'NONE' WHERE status = 'UNKNOWN_USER';
    UPDATE man_user SET status = 'ACTIVE' WHERE status = 'AWAITING_LOGIN';
    UPDATE man_user SET status = 'ACTIVE' WHERE status = 'MISSING_PASSWORD';
    UPDATE man_user SET status = 'ACTIVE' WHERE status = 'BAD_PASSWORD';
    UPDATE man_user SET status = 'ACTIVE' WHERE status = 'BANK_UNKNOWN_ERROR';
    UPDATE man_user SET status = 'ACTIVE' WHERE status = 'CHANGE_PASSWORD_REQUIRED';
    UPDATE man_user SET status = 'ACTIVE' WHERE status = 'CHANGE_USERPASSWORD_REQUIRED';
    UPDATE man_user SET status = 'ACTIVE' WHERE status = 'IMPORTED_USER';
    UPDATE man_user SET status = 'INACTIVE' WHERE status = 'INACTIVE_USER';
    UPDATE man_user SET status = 'INACTIVE' WHERE status = 'BLOCKED_BY_PASSWORD';
    UPDATE man_user SET status = 'INACTIVE' WHERE status = 'BLOCKED_USER';

    UPDATE device set holding_aware = 0 where 1=1;

    CREATE NONCLUSTERED INDEX [idx_man_user_doc_id] ON [man_user]([doc_id]);

    CREATE NONCLUSTERED INDEX [idx_trn_ref_account] ON [transaction]([reference_id], [account_code], [account_type_code]);

    CREATE NONCLUSTERED INDEX [idx_collect_qr_id_fk_unity] ON [collect]([qr_id], [fk_unity_collect_detail]);

Cambios en componentes de configuración

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

    ansible-playbook config.yml -K -t setup
    tip

    Este comando creara el directorio /opt/viridian/config.


    Servidores afectados:

    • administración
    • aplicaciones
  2. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook config.yml -K -t viridian-deploy -e "silent=true"
    tip

    Este comando descargara la version correspondiente al componente viridian-config-properties en el directorio /opt/viridian/config del servidor de administración, luego copiara el componente a los servidores de aplicaciones en la ruta /opt/viridian/config/application.yml.


    Servidores afectados:

    • administración
    • aplicaciones
  3. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook config.yml -K -t vdb-deploy -e "silent=true"
    tip

    Este comando descargara la version correspondiente al componente vdb-config-properties en el directorio /opt/viridian/config del servidor de administración, luego copiara el componente a los servidores de aplicaciones en la ruta /opt/viridian/config/vdb/application.yml.


    Servidores afectados:

    • administración
    • aplicaciones

Cambios en componentes spring

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

    ansible-playbook spring.yml -K -t setup,deploy
    tip

    Este comando creara el directorio /opt/viridian/spring y dentro copiara el archivo docker-compose.yml que contiene la especificación de los docker containers.


    Docker containers a deployar:

    • server-config
    • server-eureka

    Servidores afectados:

    • aplicaciones

Cambios en componentes de rutas

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

    ansible-playbook routes.yml -K -t setup
    tip

    Este comando creara los directorios /opt/viridian/routes, /opt/viridian/routes/public, /opt/viridian/routes/internal y /opt/viridian/routes/bank.


    Servidores afectados:

    • aplicaciones
  2. En el servidor de administración, ejecutar el siguiente comando ansible:

    ansible-playbook routes.yml -K -t vdb-public-deploy,vdb-internal-deploy,vdb-bank-deploy -e "silent=true"
    tip

    Este comando descargara la version correspondiente a los componentes vdb-routes-public, vdb-routes-internal y vdb-routes-bank en los directorios /opt/viridian/routes/public, /opt/viridian/routes/internal y /opt/viridian/routes/bank, respectivamente.


    Servidores afectados:

    • aplicaciones

Cambios en componentes gateway

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

    ansible-playbook gateway.yml -K -t setup,deploy
    tip

    Este comando creara el directorio /opt/viridian/gateway y dentro copiara el archivo docker-compose.yml que contiene la especificación de los docker containers.


    Docker containers a deployar:

    • gateway-public
    • gateway-internal

    Servidores afectados:

    • aplicaciones

Cambios en componentes vdb

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

    ansible-playbook vdb.yml -K -t setup,backend-deploy,frontend-deploy
    tip

    Este comando creara los directorios /opt/viridian/vdb, /opt/viridian/vdb/backend y /opt/viridian/vdb/frontend y dentro copiara los archivos docker-compose.yml que contienen la especificación de los docker containers.


    Docker containers a deployar para el backend:

    • bank-gateway
    • beneficiaries-api
    • digitalpay-qr
    • manager-api
    • manager-hosted
    • notifications-hosted
    • onboarding-api
    • servicepayments-api
    • statements-api
    • transactions-api
    • transactions-hosted
    • utilities-api

    Docker containers a deployar para el frontend:

    • frontend-vdb
    • frontend-admin

    Servidores afectados:

    • aplicaciones

Cambios en componente proxy

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

    ansible-playbook proxy.yml -K -t web-deploy
    tip

    Este comando iniciara un proceso interactivo de configuración, se pedirá que servidores recibirán el trafico desde los servidores web, se mostrara una lista de opciones donde 0 es la opción para seleccionar a todos los servidores de aplicaciones y 1, 2, etc, son las opciones para seleccionar a un servidor especifico de aplicaciones, para escoger la opción se debe ingresar el valor y luego presionar ENTER.

    Normalmente se debe seleccionar la opción 0, las demás opciones están pensadas para redirigir el trafico a un servidor especifico de aplicaciones cuando el o los otros presente algún problema o se este haciendo alguna actualización.

    Después de seleccionar la opción, el comando creara la configuración de los sitios disponibles en el directorio /opt/viridian/proxy/config/sites/enabled.


    Docker containers a deployar:

    • proxy

    Servidores afectados:

    • web