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
-
En el servidor de administración, ejecutar el siguiente comando:
yum -y install git ansibleEn la primera parte del enunciado, se especificara en que servidores debe ser ejecutado el comando
-
Si el comando requiere de alguna variable, este se vera asi:
ssh-copy-id adminv@<<server_ip>>variablesDonde:
<<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
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.
-
En el servidor de administración, ejecutar el siguiente comando:
ssh-keygen -t ed25519 -f $HOME/.ssh/id_ed25519 -N '' <<< y -
En el servidor de administración, ejecutar el siguiente comando:
ssh-copy-id adminv@<<server_ip>>variablesserver_ip: Ip del servidor
tipSe debe repetir la ejecución del comando por cada uno de los servidores de administración, aplicaciones y web.
-
En el servidor de administración, ejecutar el siguiente comando:
echo -e "Host git.viridian.ltd\nPort 2224" >> ~/.ssh/config -
En el servidor de administración, ejecutar el siguiente comando:
cat $HOME/.ssh/id_ed25519.pubtipEl output del comando es el SSH key y debe ser copiado a VIRIDIAN para configurar el acceso a su repositorio git.
-
En el servidor de administración, ejecutar el siguiente comando:
ssh -T git@git.viridian.ltdtipSi 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.
-
En todos los servidores, ejecutar el siguiente comando :
sudo yum -y update -
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.rpmsudo yum -y install git ansibleansible-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.
-
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.
-
En el servidor de administración, ejecutar el siguiente comando:
cd ~/viridian-ansible-bec -
En el servidor de administración, dependiendo del entorno, ejecutar el siguiente comando:
- Stage
- Preproducción
- Producción
git checkout -b stage origin/stagegit checkout -b preprod origin/preprodgit checkout -b prod origin/prod
Configuración general
Docker
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook os.yml -K -t dockertipEste 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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook os.yml -K -t setuptipEste 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.ymlEste 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
.gitignoreel archivo/defaults/local_vars.ymlesta marcado como ignorado para que no pueda ser commiteado por error.Servidores afectados:
- administración
Común
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook os.yml -K -t common,chrony,logrotate,hardeningtipLos 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/viridiandonde 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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook os.yml -K -t shorewall-setup,shorewall-deploytipEsta 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/rulesServidores afectados:
- administración
- aplicaciones
- web
Reinicio de servidores
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook -l app,web admin.yml -K -t reboottipEste comando reiniciara los servidores de aplicaciones y web, el de administración se lo reiniciara de forma manual con el siguiente comando.
-
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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook tls.yml -K -t setup,deploytipEste comando creará el directorio
/opt/viridian/tlsy dentro copiará los archivos cert.pem y key.pemServidores afectados:
- administración
- aplicaciones
- web
Configuración de Redis
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook redis.yml -K -t setup,deploy,inittipEste comando creará el directorio
/opt/viridian/redisy 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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook elk.yml -K -t setup,init,deploy,configtipEste comando creará el directorio
/opt/viridian/elky 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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook vault.yml -K -t setup,deploy,init,configtipEste comando creará el directorio
/opt/viridian/vaulty 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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook os.yml -K -t setup-envtipEste comando creará el archivo
.enven 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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook kafka.yml -K -t setup,deploytipEste comando creará el directorio
/opt/viridian/kafkay 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
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook admin.yml -K -t kafka-topics-createtipEste comando creará todos los topics de kafka necesarios.
Configuración de Proxy
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook proxy.yml -K -t setup,adm-deploytipEste comando creará el directorio
/opt/viridian/proxyy 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
-
En el servidor de administración, ejecutar los siguientes comandos ansible:
ansible-playbook config.yml -K -t setuptipEste comando creará el directorio
/opt/viridian/config.Servidores afectados:
- administración
- aplicaciones
ansible-playbook routes.yml -K -t setuptipEste comando creará el directorio
/opt/viridian/routes.Servidores afectados:
- aplicaciones
ansible-playbook spring.yml -K -t setuptipEste comando creará el directorio
/opt/viridian/spring.Servidores afectados:
- aplicaciones
ansible-playbook gateway.yml -K -t setuptipEste comando creará el directorio
/opt/viridian/gateway.Servidores afectados:
- aplicaciones
ansible-playbook vdb.yml -K -t setuptipEste comando creará el directorio
/opt/viridian/vdb.Servidores afectados:
- aplicaciones
Descarga de componentes
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook release.yml -K -t warmuptipEste comando creará descargará todos los componentes en los servidores de aplicaciones.
Servidores afectados:
- aplicaciones
Deploy de componentes
-
En el servidor de administración, ejecutar el siguiente comando ansible:
ansible-playbook release.yml -K -t deploy -e "type=cold"tipEste comando deployará todos los componentes en los servidores de aplicaciones.
Servidores afectados:
- aplicaciones