Come installare Saltstack Master e Minion su Debian 11

2 mar 2022 8 min di lettura
Come installare Saltstack Master e Minion su Debian 11
Indice dei contenuti

Introduzione

SaltStack è un software di gestione della configurazione e dell'automazione gratuito, open source e basato su Python. È uno strumento da riga di comando che ti aiuta a gestire la tua infrastruttura da una posizione centrale. SoltStack è composto da quattro componenti. Di seguito una breve spiegazione di ciascun componente:

  • Salt Master funge da controller della riga di comando per i suoi minion (servitori). Viene utilizzato per controllare e gestire un certo numero di minion.
  • I Salt Minion sono demoni slave che ricevono configurazioni e comandi dal master.
  • La formula è file di gestione della configurazione.
  • L'esecuzione è un numero di comandi e moduli che vengono eseguiti sui minion.

In questo articolo, ti mostrerò come installare i sistemi SaltStack Master e Minion su Debian 11.

Se desideri installare Saltstack su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Prerequisiti

  • Due server che eseguono Debian 11.
  • Una password di root è configurata sul server.

Installare Saltstack Master

Per impostazione predefinita, SaltStack non è incluso nel repository predefinito di Debian 11. Quindi dovrai aggiungere il repository SaltStack ad APT. Puoi aggiungerlo eseguendo il seguente 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 volta aggiunto il repository, aggiorna la cache del repository utilizzando il comando seguente:

apt-get update -y

Quindi, installa le dipendenze richieste usando il comando seguente:

apt-get install python3 salt-common -y

Quindi, installa il master SaltStack con il seguente comando:

apt-get install salt-master -y

Dopo aver completato l'installazione, è possibile procedere al passaggio successivo.

Configurare Saltstack Master

Successivamente, dovrai definire l'interfaccia di collegamento nel file di configurazione di SaltSTack:

nano /etc/salt/master

Modifica la seguente riga:

interface: 0.0.0.0

Salvare e chiudere il file, quindi riavviare SaltStack master con il seguente comando:

systemctl restart salt-master

Ora puoi verificare lo stato del SaltStack con il seguente comando:

systemctl status salt-master

Otterrai il seguente output:

? 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 volta terminato, puoi procedere al passaggio successivo.

Installare e configurare Saltstack Minion

A questo punto SaltStack Master è installato e configurato. Ora, accedi a un'altra macchina e aggiungi il repository SaltStack Minion con il seguente 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 volta aggiunto il repository, aggiorna la cache del repository utilizzando il comando seguente:

apt-get update -y

Quindi, installa SaltStack Minion con il seguente comando:

apt-get install salt-minion -y

Al termine dell'installazione, modificare il file di configurazione di SaltStack Minion e definire l'indirizzo IP principale:

nano /etc/salt/minion

Modifica la seguente riga:

master: salt-master-ip

Salva e chiudi il file quando hai finito.

Successivamente, dovrai autenticare i minion utilizzando l'impronta digitale pubblica del maestro.

Sulla macchina Salt Master, elenca tutte le impronte digitali usando il comando seguente:

salt-key --finger-all

Otterrai il seguente output:

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

Ora, copia la riga dell'impronta digitale master.pub e aggiungila al file di configurazione di Minion.

Sulla macchina Minion, modifica il file di configurazione:

nano /etc/salt/minion

Aggiungi l'impronta digitale principale come mostrato di seguito:

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'

Dovrai anche definire il nome del Minion:

id: Minion1

Salva e chiudi il file, quindi riavvia SaltStack Minion utilizzando il seguente comando:

systemctl restart salt-minion

Puoi anche verificare lo stato di SaltStack Minion con il seguente comando:

systemctl status salt-minion

Otterrai il seguente output:

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

Puoi anche controllare l'impronta digitale del minion usando il seguente comando:

salt-call key.finger --local

Otterrai il seguente output:

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

Sulla macchina SaltStack Master, abbina l'impronta digitale utilizzando il comando seguente:

salt-key --finger-all

Otterrai il seguente output:

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

Sul SaltStack Master, accetta il Minion usando il seguente comando:

salt-key -a Minion1

Otterrai il seguente output:

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

Ora verifica la connessione tra Master e Minion usando il seguente comando:

salt Minion1 test.ping

Otterrai il seguente output:

Minion1:
    True

Una volta terminato, puoi procedere al passaggio successivo.

Controllare i Minion dal Master

Dopo la riuscita connessione tra Master e Minion. Iniziamo ad eseguire alcuni comandi sui Minion.

Esegui il comando seguente per elencare lo spazio su disco disponibile su Minion:

salt '*' disk.usage

Otterrai il seguente output:

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

Per installare il pacchetto Apache su Minion, esegui il seguente comando:

salt Minion1 pkg.install apache2

Otterrai il seguente output:

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:

Per controllare la memoria libera su Minion, esegui il seguente comando:

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

Otterrai il seguente output:

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

Usare Salt State File per gestire i Minion

I file di stato sono anche noti come file di gestione della configurazione utilizzati per configurare e gestire i Minion.

Per creare un file di stato, dovrai creare la base dell'ambiente per SaltStack.

mkdir /src/salt

Quindi, crea un file di stato con il seguente comando:

nano /src/salt/setup.sls

Aggiungi il seguente codice per installare il pacchetto PHP, UNZIP e Apache su 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

Salva e chiudi il file, quindi applica la configurazione a tutti i Minion utilizzando il seguente comando:

salt '*' state.apply setup

Otterrai il seguente output:

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

Conclusione

Congratulazioni! hai installato e configurato con successo SaltStack Master e Minion sul server Debian 11. Abbiamo anche spiegato come gestire i Minion usando i file di stato e la riga di comando. Spero che questo ti aiuterà ad automatizzare e gestire la tua infrastruttura dalla posizione centrale.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.