VIRIDIAN Digital Banking - Ansible 3.0.0
Checkout del tag asociado a la versión del release
-
En el servidor de administración, ejecutar el siguiente comando:
cdansible -
En el servidor de administración, ejecutar el siguiente comando:
git fetch --all --tags -f -
En el servidor de administración, dependiendo del entorno, ejecutar el siguiente comando:
- Stage
- Preproducción
- Producción
git checkout 3.0.0-stagegit checkout 3.0.0-preprodgit checkout 3.0.0-prod
Cambios en base de datos
-
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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook config.yml -K -t setuptipEste comando creara el directorio
/opt/viridian/config.Servidores afectados:
- administración
- aplicaciones
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook config.yml -K -t viridian-deploytipEste comando descargara la version correspondiente al componente
viridian-config-propertiesen el directorio/opt/viridian/configdel 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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook config.yml -K -t vdb-deploytipEste comando descargara la version correspondiente al componente
vdb-config-propertiesen el directorio/opt/viridian/configdel 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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook spring.yml -K -t setup,deploytipEste comando creara el directorio
/opt/viridian/springy 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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook routes.yml -K -t setuptipEste comando creara los directorios
/opt/viridian/routes,/opt/viridian/routes/public,/opt/viridian/routes/internaly/opt/viridian/routes/bank.Servidores afectados:
- aplicaciones
-
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"tipEste comando descargara la version correspondiente a los componentes
vdb-routes-public,vdb-routes-internalyvdb-routes-banken los directorios/opt/viridian/routes/public,/opt/viridian/routes/internaly/opt/viridian/routes/bank, respectivamente.Servidores afectados:
- aplicaciones
Cambios en componentes gateway
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook gateway.yml -K -t setup,deploytipEste comando creara el directorio
/opt/viridian/gatewayy 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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook vdb.yml -K -t setup,backend-deploy,frontend-deploytipEste comando creara los directorios
/opt/viridian/vdb,/opt/viridian/vdb/backendy/opt/viridian/vdb/frontendy 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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook proxy.yml -K -t web-deploytipEste 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