Skip to main content
Version: 9.0.0

VIRIDIAN Digital Banking

Nomenclatura de comandos

Durante el proceso de instalación se mostrarán diferentes comandos para ser ejecutados, en este punto se explicara la nomenclatura de estos, sin embargo no es necesario ejecutar ninguno de los comandos mostrados ya que solo sirven de ejemplo.

Ejemplos

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

    yum -y install git ansible

    En la primera parte del enunciado, se especificara en que servidores debe ser ejecutado el comando

  2. Si el comando requiere de alguna variable, este se vera asi:

    ssh-copy-id adminv@<<server_ip>>
    variables

    Donde: <<server_ip>> es una variable que debe ser reemplazada antes de ejecutar el comando. Por ejemplo el comando anterior después del reemplazo de variable se vería asi:

    ssh-copy-id adminv@10.1.100.51

Tipos de comandos

Comando normales

Son comandos que solo requieren ser copiados y ejecutados.

Comandos ansible

Son comandos que necesitan ser ejecutados en el directorio ansible, este directorio se crea en el punto: Configuración del instalador > Descarga, por lo tanto, antes de ejecutar el comando ansible, se debe hacer un cd al directorio ejecutando el siguiente comando:

cd ~/viridian-ansible-bec
tip

En el punto: Configuración general > Común, se creará el alias: cdansible:

cdansible() {
cd ~/viridian-ansible-bec;
}

Desde ese momento, se puede usar el alias para hacer un cd al directorio ansible.

Configuración de SSH key

En el servidor de administración se creará un SSH key y luego este será copiado a todos los demás servidores, esto para permitir el acceso por SSH desde el servidor de administración a cualquier servidor, el SSH key también servirá para acceder al repositorio git de VIRIDIAN por SSH sin usar credenciales.

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

    ssh-keygen -t ed25519 -f $HOME/.ssh/id_ed25519 -N '' <<< y
  2. En el servidor de administración, ejecutar el siguiente comando:

    ssh-copy-id adminv@<<server_ip>>
    variables

    server_ip: Ip del servidor

    tip

    Se debe repetir la ejecución del comando por cada uno de los servidores de administración, aplicaciones y web.

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

    echo -e "Host git.viridian.ltd\nPort 2224" >> ~/.ssh/config
  4. En el servidor de administración, ejecutar el siguiente comando:

    cat $HOME/.ssh/id_ed25519.pub
    tip

    El output del comando es el SSH key y debe ser copiado a VIRIDIAN para configurar el acceso a su repositorio git.

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

    ssh -T git@git.viridian.ltd
    tip

    Si todo esta bien, se debería mostrar un mensaje de bienvenida: Welcome to GitLab, @user!

Instalación de paquetes iniciales

Se validara que todos los servidores cuenten con una suscripción activa a Red Hat y en el servidor de administración se instalaran git y ansible, paquetes necesarios para iniciar la instalación.

  1. En todos los servidores, ejecutar el siguiente comando :

    sudo yum -y update
  2. En el servidor de administración, ejecutar los siguientes comandos:

    sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    sudo yum -y install git ansible
    ansible-galaxy collection install --upgrade community.docker:3.12.1

Configuración del instalador

Descarga

El instalador de VIRIDIAN Digital Banking usa ansible para la ejecución de tareas/comandos en los servidores, el instalador esta disponible en un repositorio git que contiene todos los playbooks necesarios.

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

    cd ~/
    git clone git@git.viridian.ltd:viridian/bec/viridian-ansible-bec.git

Selección de versión

Como el instalador viene en un repositorio git, se debe seleccionar un tag o branch desde el cual se empezara con el proceso de instalación.

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

    cd ~/viridian-ansible-bec
  2. En el servidor de administración, dependiendo del entorno, ejecutar el siguiente comando:

    git checkout -b stage origin/stage

Configuración general

Docker

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

    ansible-playbook os.yml -K -t docker
    tip

    Este comando instalará y configurará docker, esto es necesario para deployar los docker containers, la gran mayoría de componentes de nuestra solución vienen dockerizados.


    Servidores afectados:

    • administración
    • aplicaciones
    • web

Variables locales

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

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

    Este comando iniciara un proceso interactivo de configuración de variables, se irán pidiendo ciertas variables, para cada una se debe ingresar el valor y luego presionar ENTER.

    Las variables que se irán pidiendo son las siguientes:

    • Please enter client: Se debe ingresar el valor de la variable client. Consultar con VIRIDIAN el valor de esta variable.
    • Please enter environment: Se debe ingresar el valor de la variable environment. Consultar con VIRIDIAN el valor de esta variable.
    • Please enter domain: Se debe ingresar el valor de la variable domain. Consultar con VIRIDIAN el valor de esta variable.
    • Please enter VIRIDIAN repo username: Se debe ingresar el valor de la variable repo_username. Consultar con VIRIDIAN el valor de esta variable.
    • Please enter VIRIDIAN repo password: Se debe ingresar el valor de la variable repo_password. Consultar con VIRIDIAN el valor de esta variable.

    Adicionalmente, se generaran de forma aleatoria los siguientes valores:

    • Usuario para acceder al server-config
    • Password para acceder al server-config

    Al finalizar la ejecución del comando, se creará un archivo de variables locales en el servidor de administración, dentro del directorio ansible: /defaults/local_vars.yml

    Este archivo contiene información sensible (usuarios/passwords) que pertenece exclusivamente al entorno que se esta instalando, el archivo debe existir solo en el servidor de administración, por esta razón, en el directorio ansible, en el archivo .gitignore el archivo /defaults/local_vars.yml esta marcado como ignorado para que no pueda ser commiteado por error.


    Servidores afectados:

    • administración

Común

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

    ansible-playbook os.yml -K -t common,chrony,logrotate,hardening
    tip

    Los comandos realizaran una configuración común de los servidores, entre lo mas destacado esta:

    • Creación de grupo de usuarios vadmins para la administración de los servidores.
    • Instalación de paquetes comunes como tree, htop, telnet para administración de los servidores.
    • Creación del directorio /opt/viridian donde el proceso de instalación creará directorios y archivos para el deploy de todos los componentes.
    • Login al repositorio docker de VIRIDIAN.
    • Creación de docker network para comunicación entre los docker containers que serán deployados.
    • Configuracion de logrotate.

    Servidores afectados:

    • administración
    • aplicaciones
    • web

Shorewall

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

    ansible-playbook os.yml -K -t shorewall-setup,shorewall-deploy
    tip

    Esta comando desactivara el servicio de firewall ya existente en los servidores e instalara el paquete shorewall, luego configurara las reglas de acceso en base al tipo de servidor y los componentes que se vayan a deployar.

    De esta manera tenemos un control granular sobre que puertos son accesibles, origen y destino de la conexión (ip's y subnets).

    Las reglas configuradas para el servidor se pueden ver en el siguiente archivo: /etc/shorewall/rules


    Servidores afectados:

    • administración
    • aplicaciones
    • web

Reinicio de servidores

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

    ansible-playbook -l app,web admin.yml -K -t reboot
    tip

    Este comando reiniciara los servidores de aplicaciones y web, el de administración se lo reiniciara de forma manual con el siguiente comando.

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

    sudo reboot

Configuracion de certificados SSL

En el servidor de administración, en el directorio ansible, en la ruta /tls, copiar los siguientes archivos:

  • Certificado SSL fullchain en formato PEM: El nombre del archivo debe ser cert.pem
  • Llave privada del certificado en formato PEM: El nombre del archivo debe ser key.pem
  1. En el servidor de administración, ejecutar el siguiente comando ansible:

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

    Este comando creará el directorio /opt/viridian/tls y dentro copiará los archivos cert.pem y key.pem


    Servidores afectados:

    • administración
    • aplicaciones
    • web

Configuración de Redis

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

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

    Este comando creará el directorio /opt/viridian/redis y dentro copiará el archivo docker-compose.yml que contiene la especificación de los docker containers.


    Docker containers a deployar:

    • redis-master
    • redis-replica
    • redis-insight

    Servidores afectados:

    • administración

Configuración de ELK

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

    ansible-playbook elk.yml -K -t setup,init,deploy,config
    tip

    Este comando creará el directorio /opt/viridian/elk y dentro copiará el archivo docker-compose.yml que contiene la especificación de los docker containers.

    El comando también configurara elasticsearch y kibana, creando los ILM (Index Lifecycle Management), templates y data views.


    Docker containers a deployar:

    • es-01
    • kib-01

    Servidores afectados:

    • administración

Configuración de Vault

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

    ansible-playbook vault.yml -K -t setup,deploy,init,config
    tip

    Este comando creará el directorio /opt/viridian/vault y dentro copiará el archivo docker-compose.yml que contiene la especificación de los docker containers.

    El comando también inicializara Vault mediante un proceso interactivo de configuración, se irán pidiendo ciertas variables, para cada una se debe ingresar el valor y luego presionar ENTER.

    Las variables que se irán pidiendo son las siguientes:

    • Please enter vault key shares: Se debe ingresar el numero de unseal keys que se generara para desellar Vault
    • Please enter vault key threshold: Se debe ingresar el numero mínimo de unseal keys necesarios para desellar Vault

    Luego se procederá al desellado inicial de los Vaults deployados en el servidor de administración y en los servidores de aplicaciones.

    Finalmente se configurara todo lo necesario: policies, tokens y secret engines.

    Como resultado de la inicialización y la configuración, se habrán generado los unseal keys y los tokens de acceso a vault, esta información esta disponible en archivos creados en el directorio ansible:

    • /defaults/vault_init.yml: Contiene el root token y los unseal keys para desellar vault
    • /defaults/vault_tokens.yml: Contiene los token de acceso a vault

    Recomendación:

    Estos archivos y/o su contenido deben ser copiados fuera del servidor, puestos bajo resguardo según políticas del banco y luego eliminados del servidor.


    Docker containers a deployar:

    • vault

    Servidores afectados:

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

    ansible-playbook os.yml -K -t setup-env
    tip

    Este comando creará el archivo .env en el directorio /opt/viridian, este archivo contiene variables de entorno necesarias para la ejecución de los docker containers.


    Servidores afectados:

    • administración
    • aplicaciones
    • web

Configuración de Kafka

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

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

    Este comando creará el directorio /opt/viridian/kafka y dentro copiará el archivo docker-compose.yml que contiene la especificación de los docker containers.


    Docker containers a deployar:

    • kafka-controller
    • kafka-broker
    • kafka-ui (solo en el servidor de administración)

    Servidores afectados:

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

    ansible-playbook admin.yml -K -t kafka-topics-create
    tip

    Este comando creará todos los topics de kafka necesarios.

Configuración de Proxy

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

    ansible-playbook proxy.yml -K -t setup,adm-deploy
    tip

    Este comando creará el directorio /opt/viridian/proxy y dentro copiará el archivo docker-compose.yml que contiene la especificación de los docker containers.


    Docker containers a deployar:

    • proxy

    Servidores afectados:

    • administración
    • web

Configuración de componentes

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

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

    Este comando creará el directorio /opt/viridian/config.


    Servidores afectados:

    • administración
    • aplicaciones
    ansible-playbook routes.yml -K -t setup
    tip

    Este comando creará el directorio /opt/viridian/routes.


    Servidores afectados:

    • aplicaciones
    ansible-playbook spring.yml -K -t setup
    tip

    Este comando creará el directorio /opt/viridian/spring.


    Servidores afectados:

    • aplicaciones
    ansible-playbook gateway.yml -K -t setup
    tip

    Este comando creará el directorio /opt/viridian/gateway.


    Servidores afectados:

    • aplicaciones
    ansible-playbook vdb.yml -K -t setup
    tip

    Este comando creará el directorio /opt/viridian/vdb.


    Servidores afectados:

    • aplicaciones

Descarga de componentes

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

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

    Este comando creará descargará todos los componentes en los servidores de aplicaciones.


    Servidores afectados:

    • aplicaciones

Deploy de componentes

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

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

    Este comando deployará todos los componentes en los servidores de aplicaciones.


    Servidores afectados:

    • aplicaciones