Pasar al contenido principal
sysadmin.org.mx

SysAdmin Sections

  • Secciones
    • Articulos
    • Clasificados
    • Hardware
    • Problemas comunes
    • Red de servicios
    • Software
    • Trucos y consejos
    • Linuxreal
User account menu
  • Iniciar sesión

Ruta de navegación

  1. Inicio

Bootstrapping de servidores con Terraform y Salt

Por angel, 19 Febrero, 2024

Esta es una guía sobre como hacer bootstrapping de servidores usando Terraform y Salt, el objetivo es explicar los pasos necesarios para desplegar una nueva maquina virtual (instancia EC2) desde Terraform, instalar Salt minion y conectarlo con el servidor Salt master para hacer la configuración final del servidor.

Este es un mecanismo efectivo para producir componentes de infraestructura reusables y escalables en granjas de servidores.

Escenario

Necesitamos automatizar el despliegue de una granja de servidores web donde la intervención manual sea mínima.

Despliegue de la instancia usando Terraform y bootstrapping inicial

Ejemplo de código en Terraform, se incluye solo parte de creación de la instancia para mantener el foco en el proceso.

Archivo: main.tf


resource "aws_instance" "instance" {
ami = var.instance_image_id
instance_type = var.instance_type
subnet_id = var.subnet
iam_instance_profile = aws_iam_instance_profile.instance_profile.name
key_name = var.key_name
vpc_security_group_ids = [ aws_security_group.security_group.id ]
root_block_device {
volume_type = var.root_volume_type
volume_size = var.root_volume_size
}
user_data =
#!/bin/sh
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io
chmod +x bootstrap-salt.sh
./bootstrap-salt.sh -A "${var.bootstrap_salt_master}"

EOF
}

Lo más importante del código anterior es el contenido de user_data, ya que en ese campo se coloca todo el código de bootstrapping inicial para instalar Salt.
1. Se descarga el script desde el sitio de bootstrapping de Salt
2. Se le dan permisos de ejecución
3. Se ejecuta el script especificando el Salt master ( -A "${var.bootstrap_salt_master}" )

Una vez que el código terraform esta listo, se puede desplegar la instancia usando:
terraform apply

Una vez que se despliega la instancia, esta se conectara inmediatamente al servidor Salt master, en Salt master se tiene que autorizar la llave y comenzar a administrarlo desde el servidor Salt master como es usual.

salt-key -a keyname

-a keyname es la llave a aceptar en el servidor Salt master

Una vez que la llave se acepta, lo que sigue es comenzar a administrar el servidor desde el Salt master y aplicar toda la configuración correspondiente, instalación de servicios y aplicaciones, configuraciones, permisos, etc; preparada usando

salt keyname state.hightstate

Y con eso ya tenemos una nueva instancia desplegada desde terraform y administrada desde Salt.

Conclusión

Utilizar Terraform junto con Salt brinda grandes posibilidades de automatización agregando valor para hacer activación de servicios repetibles, reusables, y escalables sin necesidad de administración manual.

Referencias
Salt Bootstrapping Installation
Terraform
tags
salt
terraform
linux
automation
devops
aws
  • Inicie sesión o registrese para enviar comentarios

Últimas publicaciones

  • Actualización de Salt master para corregir problemas con minions
  • Bootstrapping de servidores con Terraform y Salt
  • Comandos LINUX / BSD para todos
  • Redimensionamiento de particiones UFS sobre FreeBSD
  • Error de conexión de phpMyAdmin a AWS RDS (SELinux)
  • AWS S3 como sistema de archivos en Linux
  • Problema de conexión FTP usando pure-ftpd (Timeout)
  • Operation not permitted - connect(2)

Publicaciones destacadas

  • Reducción de latencia en arquitecturas híbridas con Amazon ElastiCache
  • Paravirtualización con XenServer
  • Administración de múltiples servidores usando Puppet
  • Servidores virtuales con ezjail
  • Manejo de respaldos con bacula
  • Configuración de MySQL Cluster en FreeBSD

Patrocinado por Nix Networks