Skip to main content

VIRIDIAN Digital Banking - Ansible 3.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 3.0.0-prod

Cambios en base de datos

  1. Ejecutar el siguiente script:

    ALTER TABLE [stats_accounts] ADD [device_id] [varchar](100);

    ALTER TABLE [firebase_topic] ADD [app_type] [varchar](40);

    ALTER TABLE [notification] ADD [notification_date] [datetime];

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

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

    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 [app_type] [varchar](40);

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

    ALTER TABLE [device] ADD [verified] [smallint];

    ALTER TABLE [batch_payment_header] ADD [trace_id] [varchar](25);

    ALTER TABLE [notification] ALTER COLUMN [body] [varchar](MAX);

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

    ALTER TABLE [activation_request] ADD [last_error_code] [varchar](10);

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

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

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

    ALTER TABLE [notification_settings] ALTER COLUMN [enabled] [smallint];

    ALTER TABLE [bank_payment] ADD [payment_type] [varchar](40);

    ALTER TABLE [trade_transfer] ADD [customer_code] [varchar](40);

    ALTER TABLE [transaction] ADD ip_address varchar(20);

    ALTER TABLE [transaction] ADD latitude decimal(15,10);

    ALTER TABLE [transaction] ADD longitude decimal(15,10);

    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);

    CREATE TABLE company_category (
    type varchar(40) NOT NULL,
    type_description varchar(80),
    status varchar(20) NOT NULL,
    image_base64 text,
    [order] int,
    select_city smallint,
    city_ids varchar(255),
    city_names varchar(255),
    user_create varchar(40),
    date_create datetime,
    user_update varchar(40),
    date_update datetime,
    admin_user_create varchar(40),
    admin_user_update varchar(40),
    admin_date_update datetime
    );

    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Tipo', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'type' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'-- type_description', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'type_description' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Estado del registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'status' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'-- image_base64', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'image_base64' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Order o posición', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'order' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'-- select_city', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'select_city' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'-- city_ids', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'city_ids' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'-- city_names', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'city_names' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Usuario que creó el registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'user_create' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Fecha de creación del registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'date_create' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Usuario que actualizó el registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'user_update' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Fecha de actualización del registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'date_update' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Usuario Administrador que actualizó el registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'admin_user_create' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Usuario Administrador que actualizó el registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'admin_user_update' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Fecha de actualización del registro por un usuario administrador', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'company_category', @level2type=N'COLUMN', @level2name=N'admin_date_update' ;

    CREATE TABLE man_user_password_change (
    id bigint NOT NULL IDENTITY PRIMARY KEY,
    vfk_user bigint NOT NULL,
    vfk_transaction varchar(26),
    status varchar(50),
    change_date datetime NOT NULL,
    old_password varchar(250),
    new_password varchar(250),
    user_create varchar(40),
    date_create datetime,
    user_update varchar(40),
    date_update datetime,
    admin_user_create varchar(40),
    admin_user_update varchar(40),
    admin_date_update datetime
    );

    exec sp_addextendedproperty @name=N'MS_Description', @value=N'ID único autoincremental, llave primaria de la tabla', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'id' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Referencia virtual a la llave o clave primaria del usuario en la tabla man_user', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'vfk_user' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Identificador único de la transacción. Ejemplo: MA-02317134-0003128967622', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'vfk_transaction' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Estado del registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'status' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'-- change_date', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'change_date' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'-- old_password', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'old_password' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'-- new_password', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'new_password' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Usuario que creó el registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'user_create' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Fecha de creación del registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'date_create' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Usuario que actualizó el registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'user_update' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Fecha de actualización del registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'date_update' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Usuario Administrador que actualizó el registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'admin_user_create' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Usuario Administrador que actualizó el registro', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'admin_user_update' ;
    exec sp_addextendedproperty @name=N'MS_Description', @value=N'Fecha de actualización del registro por un usuario administrador', @level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'man_user_password_change', @level2type=N'COLUMN', @level2name=N'admin_date_update' ;

    CREATE INDEX idx_man_user_password_change_vfk_transaction ON man_user_password_change (vfk_transaction);
    CREATE INDEX idx_man_user_password_change_vfk_user ON man_user_password_change (vfk_user);

    UPDATE [device] SET verified = 0;

    INSERT INTO company_category (type, type_description, status, image_base64, [order], select_city, city_ids, city_names, user_create, date_create, user_update, date_update, admin_user_create, admin_user_update, admin_date_update)
    VALUES (N'1', N'Telecomunicación', N'ACTIVE', null, 1, 0, null, null, N'admin', GETDATE(), null, null, null, null, null);

    INSERT INTO company_category (type, type_description, status, image_base64, [order], select_city, city_ids, city_names, user_create, date_create, user_update, date_update, admin_user_create, admin_user_update, admin_date_update)
    VALUES (N'10', N'Filtros', N'ACTIVE', null, 10, 0, null, null, N'admin', GETDATE(), null, null, null, null, null);

    INSERT INTO company_category (type, type_description, status, image_base64, [order], select_city, city_ids, city_names, user_create, date_create, user_update, date_update, admin_user_create, admin_user_update, admin_date_update)
    VALUES (N'1001', N'Condominio', N'ACTIVE', null, 1001, 0, null, null, N'admin', GETDATE(), null, null, null, null, null);

    INSERT INTO company_category (type, type_description, status, image_base64, [order], select_city, city_ids, city_names, user_create, date_create, user_update, date_update, admin_user_create, admin_user_update, admin_date_update)
    VALUES (N'15', N'Eléctricos', N'ACTIVE', null, 15, 0, N'16', N'San Venganza', N'admin', GETDATE(), null, null, null, null, null);

    INSERT INTO company_category (type, type_description, status, image_base64, [order], select_city, city_ids, city_names, user_create, date_create, user_update, date_update, admin_user_create, admin_user_update, admin_date_update)
    VALUES (N'2', N'Servicios básicos', N'ACTIVE', null, 2, 0, null, null, N'admin', GETDATE(), null, null, null, null, null);

    INSERT INTO company_category (type, type_description, status, image_base64, [order], select_city, city_ids, city_names, user_create, date_create, user_update, date_update, admin_user_create, admin_user_update, admin_date_update)
    VALUES (N'3', N'Servicios públicos', N'ACTIVE', null, 3, 0, N'10,9,8,7,6,5,4,3,2,1', N'Pando,Beni,Tarija,Potosí,Oruro,Cochabamba,El Alto,Chuquisaca,Santa Cruz,La Paz', N'admin', GETDATE(), null, null, null, null, null);

    INSERT INTO company_category (type, type_description, status, image_base64, [order], select_city, city_ids, city_names, user_create, date_create, user_update, date_update, admin_user_create, admin_user_update, admin_date_update)
    VALUES (N'4', N'Ventas por catálogo', N'ACTIVE', null, 4, 0, null, null, N'admin', GETDATE(), null, null, null, null, null);

    INSERT INTO company_category (type, type_description, status, image_base64, [order], select_city, city_ids, city_names, user_create, date_create, user_update, date_update, admin_user_create, admin_user_update, admin_date_update)
    VALUES (N'5', N'Bienes raíces', N'ACTIVE', null, 5, 0, null, null, N'admin', GETDATE(), null, null, null, null, null);

    INSERT INTO company_category (type, type_description, status, image_base64, [order], select_city, city_ids, city_names, user_create, date_create, user_update, date_update, admin_user_create, admin_user_update, admin_date_update)
    VALUES (N'6', N'Instituciones educativas', N'ACTIVE', null, 6, 0, null, null, N'admin', GETDATE(), null, null, null, null, null);

    INSERT INTO company_category (type, type_description, status, image_base64, [order], select_city, city_ids, city_names, user_create, date_create, user_update, date_update, admin_user_create, admin_user_update, admin_date_update)
    VALUES (N'7', N'Aseguradoras', N'ACTIVE', null, 7, 0, null, null, N'admin', GETDATE(), null, null, null, null, null);

    INSERT INTO company_category (type, type_description, status, image_base64, [order], select_city, city_ids, city_names, user_create, date_create, user_update, date_update, admin_user_create, admin_user_update, admin_date_update)
    VALUES (N'8', N'Aerolíneas', N'ACTIVE', null, 8, 0, null, null, N'admin', GETDATE(), null, null, null, null, null);

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
    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
    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
    • bank-service
    • batchpayments-api
    • batchpayments-hosted
    • beneficiaries-api
    • digitalpay-qr
    • manager-api
    • manager-hosted
    • notifications-hosted
    • onboarding-api
    • servicepayments-api
    • statements-api
    • trade-api
    • transactions-api
    • transactions-hosted
    • utilities-api
    • wiretransfer-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