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.
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.
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
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).
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
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
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:
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.
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
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.
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
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:
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.
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).