Cómo instalar SaltStack IT Automation Framework en Debian 12

Salt o Saltstack es un marco de automatización informática de código abierto escrito en Python. Permite a los administradores ejecutar comandos de forma remota a múltiples máquinas directamente.

Salt está diseñado con una arquitectura de Maestro y Minion. El maestro Salt es el controlador central de la gestión de la configuración de Salt, y los Minions son servidores gestionados por el maestro Salt, o bien tú nombras a los minions como servidores de destino.

Esta guía te mostrará cómo instalar SaltStack en servidores Debian 12. Te mostraremos cómo instalar Salt Master y Minion, cómo ejecutar comandos arbitrarios a través de Salt y, a continuación, crear el primer estado Salt para instalar LAMP Stack.

Requisitos previos

Antes de empezar, asegúrate de que tienes lo siguiente

  • Dos o tres servidores Debian 12 – En este ejemplo, utilizaremos el servidor maestro en 192.168.5.15 y el servidor minion1 en 192.168.5.21.
  • Un usuario no root con privilegios de administrador.

Configurar el archivo /etc/hosts

En esta sección, configurarás el archivo /etc/hosts para que cada servidor pueda conectarse a través de un nombre de host, que es más fácil que utilizar una dirección IP.

Abre el archivo /etc/hosts utilizando el siguiente editor nano.

sudo nano /etc/hosts

Introduce los detalles del host y la dirección IP en el archivo. Asegúrate de cambiar las direcciones IP y los nombres de host con tu información.

192.168.5.15 master
192.168.5.21 minion1

Guarda y sal del archivo cuando hayas terminado.

Añadir el repositorio SaltStack

Después de configurar el archivo/etc/hosts, debes añadir el repositorio SaltStack a todos tus servidores Debian. SaltStack proporciona un repositorio oficial para la mayoría de las distribuciones de Linux, incluida la última Debian 12.

En primer lugar, crea un nuevo directorio /etc/apt/keyrings utilizando el comando que se indica a continuación.

mkdir /etc/apt/keyrings

Descarga la clave GPG para el repositorio SaltStack con el comando que aparece a continuación.

sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/debian/12/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg

Una vez descargada la clave GPG, añade el repositorio SaltStack utilizando el siguiente comando.

echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/debian/12/amd64/latest bookworm main" | sudo tee /etc/apt/sources.list.d/salt.list

Ahora actualiza y refresca tu índice de paquetes de Debian.

sudo apt update

A continuación puedes ver el repositorio SaltStack añadido a los servidores Debian.

añadir repo

Configurar UFW

En este ejemplo, configurarás y habilitarás UFW (Uncomplicated Firewall) en tus servidores Debian. Para ello, instalarás UFW, abrirás el puerto SSH y, a continuación, iniciarás y habilitarás UFW.

Instala UFW en tu sistema Debian utilizando el siguiente comando.

sudo apt install ufw -y

Una vez instalado UFW, ejecuta el siguiente comando para habilitar el perfil de aplicación OpenSSH. Verás que se añaden reglas de salida.

sudo ufw allow OpenSSH

Ahora habilita UFW utilizando el siguiente comando. Introduce y para confirmar, iniciar y habilitar UFW.

sudo ufw enable

Obtendrás la salida‘El cortafuegos está activo…’ una vez que UFW se haya iniciado y habilitado.

configuración ufw

Instalar Salt Master

Después de haber completado las tareas anteriores, estás listo para instalar SaltStack. Instalarás y configurarás el Salt Master en el servidor maestro.

En el servidor maestro, ejecuta el siguiente comando para instalar el paquete salt-master. Introduce Y para confirmar la instalación.

sudo apt install salt-master

instalar maestro sal

Una vez finalizada la instalación, abre la configuración por defecto del Maestro Salt /etc/salt/master utilizando el comando editor nano que aparece a continuación.

sudo nano /etc/salt/master

Cambia la interfaz por defecto por tu dirección IP local. En este ejemplo, la dirección IP del servidor maestro en 192.168.5.15.

interface: 192.168.5.15

Guarda el archivo y sal cuando hayas terminado.

Ahora ejecuta el siguiente comando para reiniciar el servicio salt-master y aplicar tus cambios.

sudo systemctl restart salt-master

A continuación, verifica el servicio salt-master para asegurarte de que se está ejecutando.

sudo systemctl status salt-master

Si se está ejecutando, verás una salida como activo (en ejecución).

verificar maestro de sal

A continuación, ejecuta el siguiente comando para abrir los puertos TCP 4505 y 4506 que utilizará Salt Master.

sudo ufw allow 4505,4506/tcp

Por último, comprueba la lista de puertos de tu servidor maestro mediante el comando siguiente. Asegúrate de que el acceso a los puertos 4505 y 4506 está permitido.

sudo ufw status

configuración ufw

Instalar Salt Minion

Ahora que ya has configurado Salt Master pasa a configurar Salt Manion en el servidor minion1. Instalarás salt-minion y luego lo configurarás para que se conecte al servidor Salt Master.

Instala el paquete salt-minion en el servidor minion1 utilizando el siguiente comando. Introduce Y para confirmar la instalación.

sudo apt install salt-minion

instalar sal-minion

Una vez finalizada la instalación, abre la configuración de Salt Minion /etc/salt/minion utilizando el comando editor nano.

sudo nano /etc/salt/minion

Introduce la dirección IP de tu Salt Master en el parámetro master como se indica a continuación:

master: 192.168.5.15

guarda el archivo y sal del editor.

A continuación, ejecuta el siguiente comando para reiniciar el servicio salt-minion y aplicar tus cambios.

sudo systemctl restart salt-minion

Por último, verifica el servicio salt-minion para asegurarte de que se está ejecutando. El Salt Minion se registrará automáticamente en el servidor Salt Master.

sudo systemctl status salt-minion

Asegúrate de que el servicio salt-minion se está ejecutando como se muestra a continuación:

verificar siervo de la sal

Añadir Salt Minion a Salt Master

Después de configurar Salt Minion, aún tienes que aceptar la clave de registro de los servidores Minion.

En primer lugar, ejecuta el siguiente comando para verificar la clave de lista en el servidor maestro.

salt-key --finger-all

Si todo va bien, podrás ver la clave del servidor minion1 o de los servidores Salt Minion.

listar teclas

Ahora ejecuta el siguiente comando para aceptar la clave del servidor minion1. Introduce Y para confirmar y aceptar la clave.

salt-key -a minion1

A continuación, verifica de nuevo la clave de la lista en el servidor minion1. Verás que la clave del servidor minion1 aparece en la sección Claves aceptadas.

salt-key --finger-all

aceptar clave

Ahora puedes probar la conexión con el servidor Salt Minion utilizando el comando. puedes especificar el servidor de destino con el nombre de host, o puedes utilizar el carácter «*» para dirigirte a todos los servidores Salt Minion disponibles.

salt minion1 test.ping
salt * test.ping

Si la conexión a Salt Minion tiene éxito, verás una salida‘True‘.

Por último, verifica la versión de Salt utilizando el comando que aparece a continuación.

salt minion1 test.version

En este ejemplo, está instalada la versión Salt Minion 3007.0.

prueba salt ping y versión

Ejecutar el comando arbitrario a través de SaltStack

Con todo configurado, probarás tu instalación SaltStack ejecutando el comando arbitrario en el servidor minion1 desde el servidor maestro.

Ejecuta el siguiente comando para actualizar el índice de paquetes del repositorio para los servidores Minion.

salt '*' pkg.refresh_db

Ahora ejecuta el comando siguiente para actualizar los paquetes en el servidor destino.

salt '*' pkg.list_upgrades

A continuación, ejecuta el siguiente comando para mostrar información sobre el paquete apache2.

salt '*' pkg.show apache2

Para comprobar los servicios en ejecución en el servidor Minion, ejecuta el comando siguiente.

salt '*' service.get_running
salt '*' service.execs

Creación del Estado Salt para la instalación de la Pila LAMP

En esta sección, aprenderás a crear el primer SaltState para instalar LAMP Stack (Apache, MariaDB y PHP) en el servidor minion1.

En primer lugar, crea un nuevo directorio /srv/salt/lamp utilizando el siguiente comando.

mkdir -p /srv/salt/lamp

Ahora crea un nuevo archivo Salt state init /srv/salt/lamp/init.sls utilizando el siguiente editor nano.

nano /srv/salt/lamp/init.sls

Añade la siguiente configuración al archivo. Con esto, instalarás LAMP Stack (Apache, MariaDB y PHP) en el servidor de destino.

lamp_stack:
 pkg.installed:
 - pkgs:
 - apache2
 - mariadb-server
 - php
 - libapache2-mod-php
apache2:
service.running:
- enable: True
- reload: True

mariadb:
service.running:
- enable: True
- reload: True

Guarda el archivo y sal.

Ahora ejecuta el siguiente comando para verificar la configuración de tu estado Salt contra Salt Minion. Asegúrate de que no tienes ningún error.

sudo salt * state.show_sls lamp

estado de la sal de prueba

A continuación, ejecuta el siguiente comando para aplicar el estado Salt‘lamp‘ al servidor minion1.

sudo salt minion1 state.apply lamp

Cuando se complete el proceso, obtendrás la siguiente salida:

éxito estado de sal

Por último, ejecuta el siguiente comando para verificar los servicios Apache y MariaDB en el servidor minion1.

salt '*' service.get_running

Asegúrate de que los servicios apache2 y mariadb se están ejecutando.

estado del servicio

Conclusión

¡Enhorabuena! Has completado la instalación de SaltStack (Salt Master y Minion) en servidores Debian 12. También has aprendido a ejecutar el comando arbitrary contra los servidores Minion y has creado el primer estado Salt para instalar LAMP Stack (Apache2, MariaDB y PHP).

También te podría gustar...