Skip to main content
Version: next

OS

Esta es la forma que toman la mayoría de los comandos del playbook os.yml:

ansible-playbook os.yml -K -t <<tag>>

Los nombres de los tags descritos a continuación deberán ir en vez de <<tag>> al momento de ejecutar el comando. Ej:

ansible-playbook os.yml -K -t setup

Se pueden ejecutar múltiples tags, solamente deben ser separados por comas, sin espacios. Ej:

ansible-playbook os.yml -K -t setup,common

Tags

Setup

info

setup: Iniciará un proceso interactivo donde el usuario deberá introducir distintos datos acerca del entorno que se desea construir, a medida que el comando los vaya pidiendo. Para cada variable se debe ingresar el valor y luego presionar ENTER:

  • 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.

Este tag también iniciará la conexión con el repositorio en que se encuentran las imágenes de Docker de los componentes de la soluación. Por último, este tag generará algunas variables de manera aleatoria:

  • Cluster id de Kafka
  • Password del usuario kafka para Kafka UI
  • Usuario spring
  • Password del usuario spring

Todos los datos introducidos y generados durante el proceso serán almacenados en defaults/local_vars.yml en el servidor de administración.

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

Docker

info

docker: Preparará a todos los servidores del entorno para el uso de docker.

Primero, revisará que los paquetes docker, docker-common y docker-engine no estén instalados. A continuación, añadirá el repositorio de docker que corresponde a la distribución de Linux. Si se está utilizando un proxy en el entorno, se creará el directorio /etc/systemd/system/docker.service.d y dentro de él el archivo http-proxy.conf.

Entonces, instalará docker. Una vez terminada la instalación, creará el directorio /etc/docker. Dentro de este directorio, generará el archivo daemon.json que configurará el servicio de docker. Además, añadirá el usuario adminv al grupo de usuarios docker. A continuación, imprimirá en pantalla las versiones de docker y docker-compose

Para finalizar, instalará y actualizará pip y actualizará la librería PyYAML.


Servidores afectados:

  • administración
  • aplicaciones
  • web

General

Common

info

common: Preparará a todos los servidores del entorno para la instalación de la solución:

Primero, actualizará los hostnames de los servidores que componen el entorno y configurará el mensaje que se imprimirá en la consola al momento de conectarse con los servidores del entorno. Entonces verificará que esté bloqueado el usuario root, creará los grupos vadmins y voperators y añadirá el usuario adminv al grupo vadmins. A continuación generará los archivos /root/.bashrc y /home/adminv/.bashrc para configurar las acciones de los usuarios root y adminv, respectivamente. Después, verificará que exista el grupo wheels y que esté habilitado en /etc/sudoers y generará el archivo de configuración /etc/sudoers.d/vsudoers para definir los permisos de los grupos de usuarios creados.

Entonces, descargará, instalará y configurará el repositorio EPEL para el entorno. Con este repositorio instalado, se instalarán las herramientas necesarias:

  • curl
  • htop
  • tree
  • rsync
  • strace
  • nload
  • nmap
  • tcpdump
  • mtr
  • telnet
  • bash-completion
  • iotop
  • atop
  • vim
  • mlocate
  • gzip
  • jq
  • perl-App-cpanminus
  • passlib

Para finalizar, creará el directorio /opt/viridian, hará el login al repositorio en que se encuentran las imágenes de los componentes de la solución Viridian, creará la red de docker por medio de la cual se comunicarán los componentes y generará un archivo .env dentro de /opt/viridian que contiene las variables que corresponden al entorno y al servidor.


Servidores afectados:

  • administración
  • aplicaciones
  • web

Chrony

info

chrony: Configurará la zona horaria e instalará el paquete chrony. Si existe el servicio ntpd, lo detendrá y enmascarará. Entonces, generará el archivo de configuración para chrony y reiniciará el servicio, para después iniciarlo y habilitarlo.


Servidores afectados:

  • administración
  • aplicaciones
  • web

Logrotate

info

logrotate: Instalará el paquete logrotate y generará el archivo de configuración /etc/logrotate.conf. Entonces, eliminará los archivos de configuración innecesarios: /etc/logrotate.d/subscription-manager y /etc/logrotate.d/rsyslog. Para finalizar, añadirá la configuración de syslog generando el archivo /etc/logrotate.d/syslog.


Servidores afectados:

  • administración
  • aplicaciones
  • web

Hardening

info

hardening: Configurará dos servicios:

  • ssh: Configurará SSH para que sobreescriba el system crypto policy y generará la configuración para SSH en el archivo /etc/ssh/sshd_config. Entonces reiniciará el servicio sshd.
  • sysctl: Generará el archivo /usr/sbin/policy-rc.d, verificará que todos los valores de sysctl están configurados, habilitará net.ipv4.ip_forward y deshabilitará kernel.grsecurity.ip_blackhole si se lo indica al momento de utilizar el tag.
    ansible-playbook os.yml -K -t hardening -e "disable_black_hole=1"

Servidores afectados:

  • administración
  • aplicaciones
  • web

Shorewall

Shorewall Setup

info

shorewall-setup: Deshabilitará el firewall que se encuentra disponible en todos los servidores del entorno, si es que encuentra un firewall habilitado. A continuación instalará shorewall en todos los servidores.


Servidores afectados:

  • administración
  • aplicaciones
  • web

Shorewall Deploy

info

shorewall-deploy: Creará los archivos de configuración para shorewall en todos los servidores del entorno:

  • shorewall.conf
  • interfaces
  • zones
  • policy
  • rules
  • snat Con estos archivos, configurará las reglas de acceso en base al tipo de servidor y los componentes que se vayan a deployar. De esta manera se tiene 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. Después de confirmar que los archivos son válidos, cargará la configuración a shorewall y habilitará shorewall para todos los servidores del entorno.

Servidores afectados:

  • administración
  • aplicaciones
  • web