GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar Saltstack Master y Minion en Debian 11

SaltStack es un software de administración de configuración y automatización gratuito, de código abierto y basado en Python. Es una herramienta de línea de comandos que lo ayuda a administrar su infraestructura desde una ubicación central. SoltStack está hecho de cuatro componentes. A continuación se muestra una breve explicación de cada componente:

  • Maestro de la sal actúa como un controlador de línea de comandos para sus secuaces. Se utiliza para controlar y gestionar una serie de minions.
  • Súbditos de sal son demonios esclavos que reciben configuraciones y comandos del maestro.
  • Fórmula son archivos de gestión de configuración.
  • Ejecución es una serie de comandos y módulos que se ejecutan en los minions.

En este artículo, le mostraré cómo instalar los sistemas SaltStack Master y Minion en Debian 11.

Requisitos

  • Dos servidores que ejecutan Debian 11.
  • Se configura una contraseña raíz en el servidor.

Instalar Saltstack Master

De forma predeterminada, SaltStack no está incluido en el repositorio predeterminado de Debian 11. Por lo tanto, deberá agregar el repositorio SaltStack a APT. Puede agregarlo ejecutando el siguiente comando:

curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/latest bullseye main" | tee /etc/apt/sources.list.d/salt.list

Una vez que se agrega el repositorio, actualice el caché del repositorio usando el siguiente comando:

apt-get update -y

Luego, instale las dependencias requeridas usando el siguiente comando:

apt-get install python3 salt-common -y

A continuación, instale el maestro SaltStack con el siguiente comando:

apt-get install salt-master -y

Después de la instalación exitosa, puede continuar con el siguiente paso.

Configurar maestro Saltstack

A continuación, deberá definir la interfaz de enlace en el archivo de configuración de SaltSTack.

nano /etc/salt/master

Cambie la siguiente línea:

interface: 0.0.0.0

Guarde y cierre el archivo, luego reinicie el maestro SaltStack con el siguiente comando:

systemctl restart salt-master

Ahora puede verificar el estado de SaltStack con el siguiente comando:

systemctl status salt-master

Obtendrá el siguiente resultado:

? salt-master.service - The Salt Master Server
     Loaded: loaded (/lib/systemd/system/salt-master.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-02-12 07:39:48 UTC; 9s ago
       Docs: man:salt-master(1)
             file:///usr/share/doc/salt/html/contents.html
             https://docs.saltproject.io/en/latest/contents.html
   Main PID: 19403 (salt-master)
      Tasks: 32 (limit: 2341)
     Memory: 201.5M
        CPU: 6.109s
     CGroup: /system.slice/salt-master.service
             ??19403 /usr/bin/python3 /usr/bin/salt-master
             ??19407 /usr/bin/python3 /usr/bin/salt-master
             ??19431 /usr/bin/python3 /usr/bin/salt-master
             ??19434 /usr/bin/python3 /usr/bin/salt-master
             ??19435 /usr/bin/python3 /usr/bin/salt-master
             ??19436 /usr/bin/python3 /usr/bin/salt-master
             ??19437 /usr/bin/python3 /usr/bin/salt-master
             ??19444 /usr/bin/python3 /usr/bin/salt-master
             ??19445 /usr/bin/python3 /usr/bin/salt-master
             ??19446 /usr/bin/python3 /usr/bin/salt-master
             ??19448 /usr/bin/python3 /usr/bin/salt-master
             ??19451 /usr/bin/python3 /usr/bin/salt-master
             ??19454 /usr/bin/python3 /usr/bin/salt-master

Feb 12 07:39:48 debian11 systemd[1]: Starting The Salt Master Server...
Feb 12 07:39:48 debian11 systemd[1]: Started The Salt Master Server.

Una vez que haya terminado, puede continuar con el siguiente paso.

Instalar y configurar Saltstack Minion

En este punto, SaltStack Master está instalado y configurado. Ahora, inicie sesión en otra máquina y agregue el repositorio SaltStack Minion con el siguiente comando:

curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/latest bullseye main" | tee /etc/apt/sources.list.d/salt.list

Una vez que se agrega el repositorio, actualice el caché del repositorio usando el siguiente comando:

apt-get update -y

A continuación, instale SaltStack Minion con el siguiente comando:

apt-get install salt-minion -y

Después de la instalación exitosa, edite el archivo de configuración de SaltStack Minion y defina la dirección IP maestra.

nano /etc/salt/minion

Cambie la siguiente línea:

master: salt-master-ip

Guarde y cierre el archivo cuando haya terminado.

A continuación, deberá autenticar a los minions utilizando la huella digital pública del maestro.

En la máquina Salt Master, enumere todas las huellas dactilares con el siguiente comando:

salt-key --finger-all

Obtendrá el siguiente resultado:

Local Keys:
master.pem:  b7:f0:ed:19:bf:e8:e0:9d:c3:9c:a2:09:2c:97:2f:6b:0f:cb:eb:76:3d:d7:d5:a9:7d:0c:3a:60:6e:9f:d7:78
master.pub:  5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1

Ahora, copie la línea de huellas dactilares master.pub y agréguela al archivo de configuración de Minion.

En la máquina Minion, edite el archivo de configuración:

nano /etc/salt/minion

Agregue la huella digital maestra como se muestra a continuación:

master_finger:  '5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1'

También necesitarás definir el nombre del Minion:

id: Minion1

Guarde y cierre el archivo, luego reinicie SaltStack Minion usando el siguiente comando:

systemctl restart salt-minion

También puede verificar el estado de SaltStack Minion con el siguiente comando:

systemctl status salt-minion

Obtendrá el siguiente resultado:

? salt-minion.service - The Salt Minion
     Loaded: loaded (/lib/systemd/system/salt-minion.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-02-12 07:46:04 UTC; 7s ago
       Docs: man:salt-minion(1)
             file:///usr/share/doc/salt/html/contents.html
             https://docs.saltproject.io/en/latest/contents.html
   Main PID: 2324 (salt-minion)
      Tasks: 8 (limit: 2341)
     Memory: 59.9M
        CPU: 1.185s
     CGroup: /system.slice/salt-minion.service
             ??2324 /usr/bin/python3 /usr/bin/salt-minion
             ??2326 /usr/bin/python3 /usr/bin/salt-minion
             ??2328 /usr/bin/python3 /usr/bin/salt-minion

Feb 12 07:46:04 debian11 systemd[1]: Starting The Salt Minion...
Feb 12 07:46:04 debian11 systemd[1]: Started The Salt Minion.

También puedes verificar la huella digital del súbdito usando el siguiente comando:

salt-call key.finger --local

Obtendrá el siguiente resultado:

local:
    14:12:ef:33:d2:1e:49:23:7b:a2:74:8d:19:fc:be:5e:6d:a6:57:ec:4f:a9:da:23:69:3f:62:1b:6b:4b:2f:27

En la máquina SaltStack Master, haga coincidir la huella digital con el siguiente comando:

salt-key --finger-all

Obtendrá el siguiente resultado:

Local Keys:
master.pem:  b7:f0:ed:19:bf:e8:e0:9d:c3:9c:a2:09:2c:97:2f:6b:0f:cb:eb:76:3d:d7:d5:a9:7d:0c:3a:60:6e:9f:d7:78
master.pub:  5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1
Unaccepted Keys:
Minion1:  14:12:ef:33:d2:1e:49:23:7b:a2:74:8d:19:fc:be:5e:6d:a6:57:ec:4f:a9:da:23:69:3f:62:1b:6b:4b:2f:27

En SaltStack Master, acepta el Minion usando el siguiente comando:

salt-key -a Minion1

Obtendrá el siguiente resultado:

The following keys are going to be accepted:
Unaccepted Keys:
Minion1
Proceed? [n/Y] Y
Key for minion Minion1 accepted.

Ahora, verifica la conexión entre Master y Minion usando el siguiente comando:

salt Minion1 test.ping

Obtendrá el siguiente resultado:

Minion1:
    True

Una vez que haya terminado, puede continuar con el siguiente paso.

Controlar a los esbirros del maestro

Después de la exitosa conexión entre Master y Minion. Comencemos a ejecutar algunos comandos en los Minions.

Ejecute el siguiente comando para enumerar el espacio en disco disponible en Minion:

salt '*' disk.usage

Obtendrá el siguiente resultado:

Minion1:
    ----------
    /:
        ----------
        1K-blocks:
            51538400
        available:
            47658628
        capacity:
            4%
        filesystem:
            /dev/sda1
        used:
            1661604
    /dev:
        ----------
        1K-blocks:
            998936
        available:
            998936
        capacity:
            0%
        filesystem:
            udev
        used:
            0
    /dev/shm:
        ----------
        1K-blocks:
            1015232
        available:
            1015152
        capacity:
            1%
        filesystem:
            tmpfs
        used:
            80

Para instalar el paquete Apache en Minion, ejecute el siguiente comando:

salt Minion1 pkg.install apache2

Obtendrá el siguiente resultado:

Minion1:
    ----------
    apache2:
        ----------
        new:
            2.4.52-1~deb11u2
        old:
    apache2-bin:
        ----------
        new:
            2.4.52-1~deb11u2
        old:
    apache2-data:
        ----------
        new:
            2.4.52-1~deb11u2
        old:
    apache2-utils:
        ----------
        new:
            2.4.52-1~deb11u2
        old:
    libapr1:
        ----------
        new:
            1.7.0-6+deb11u1
        old:
    libaprutil1:
        ----------
        new:
            1.6.1-5
        old:
    libaprutil1-dbd-sqlite3:
        ----------
        new:
            1.6.1-5
        old:
    libaprutil1-ldap:
        ----------
        new:
            1.6.1-5
        old:

Para verificar la memoria libre en el Minion, ejecute el siguiente comando:

salt '*' cmd.run 'free -m'

Obtendrá el siguiente resultado:

Minion1:
                   total        used        free      shared  buff/cache   available
    Mem:            1982         140        1392           2         450        1691
    Swap:              0           0           0

Usar Salt State File para administrar Minions

Los archivos de estado también se conocen como archivos de administración de configuración que se utilizan para configurar y administrar Minions.

Para crear un archivo de estado, deberá crear la base de entorno para SaltStack.

mkdir /src/salt

A continuación, cree un archivo de estado con el siguiente comando:

nano /src/salt/setup.sls

Agregue el siguiente código para instalar el paquete PHP, UNZIP y Apache en Minions:

network_utilities: 
 pkg.installed: 
   - pkgs: 
     - php 
     - unzip 

apache2_pkg: 
 pkg.installed: 
   - name: apache2 

apache2_service: 
 service.running: 
   - name: apache2 
   - enable: True 
   - require: 
     - pkg: apache2_pkg

Guarde y cierre el archivo y luego aplique la configuración a todos los Minions usando el siguiente comando:

salt '*' state.apply setup

Obtendrá el siguiente resultado:

Minion1:
----------
          ID: network_utilities
    Function: pkg.installed
      Result: True
     Comment: The following packages were installed/updated: php, unzip
     Started: 07:51:22.424504
    Duration: 17349.907 ms
     Changes:   
              ----------
              libapache2-mod-php7.4:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              php:
                  ----------
                  new:
                      2:7.4+76
                  old:
              php-common:
                  ----------
                  new:
                      2:76
                  old:
              php7.4:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              php7.4-cli:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              php7.4-common:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              php7.4-json:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              php7.4-opcache:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              php7.4-readline:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              psmisc:
                  ----------
                  new:
                      23.4-2
                  old:
              unzip:
                  ----------
                  new:
                      6.0-26
                  old:
----------
          ID: apache2_pkg
    Function: pkg.installed
        Name: apache2
      Result: True
     Comment: All specified packages are already installed
     Started: 07:51:39.780956
    Duration: 1029.457 ms
     Changes:   
----------
          ID: apache2_service
    Function: service.running
        Name: apache2
      Result: True
     Comment: The service apache2 is already running
     Started: 07:51:40.812210
    Duration: 35.61 ms
     Changes:   

Summary for Minion1
------------
Succeeded: 3 (changed=1)
Failed:    0
------------
Total states run:     3
Total run time:  18.415 s

Conclusión

¡Felicidades! Ha instalado y configurado correctamente SaltStack Master y Minion en el servidor Debian 11. También explicamos cómo administrar Minions usando archivos de estado y línea de comandos. Espero que esto lo ayude a automatizar y administrar su infraestructura desde la ubicación central. Siéntase libre de preguntarme si tiene alguna pregunta.


Debian
  1. Cómo instalar y usar Ansible en Debian 11

  2. Cómo instalar y asegurar MariaDB en Debian 11

  3. Cómo instalar Node.js y npm en Debian 11

  4. Linux – ¿Fusionar /usr/bin y /usr/sbin en /bin (gnu/linux)?

  5. ¿Cuál es la diferencia entre #!/usr/bin/env bash y #!/usr/bin/bash?

Cómo instalar y configurar Redmine en Debian 9

Cómo instalar y usar FFmpeg en Debian 10

Cómo instalar y configurar Monit en Debian 9

Cómo instalar Icinga 2 e Icinga Web 2 en Debian 9

Cómo instalar y usar FFmpeg en Debian 11

Cómo instalar y configurar Git en Debian 11