SaltStack - Gestore pacchetti Salt

Le formule del sale vengono confezionate e distribuite ai maestri del sale utilizzando il gestore dei pacchetti. Questo concetto è stato influenzato daRPM, Yum e Pacmansistemi di confezionamento. Stato del sale, pilastro, modelli di file e altri file vengono utilizzati dalla formula e quindi confezionati in un unico file.

Dopo aver creato un pacchetto formula, viene copiato nel sistema di repository per utilizzarlo per i salt master. Prima di passare al gestore dei pacchetti, diamo un'occhiata a come installare un pacchetto "nginx" utilizzando il comando di base Salt.

La seguente sintassi viene utilizzata per installare un pacchetto "nginx".

root@saltmaster:/home/vagrant# salt '*' pkg.install nginx

Qui, il pkg.install nginxcomando viene utilizzato per installare un pacchetto. Dopo l'esecuzione, vedrai la seguente risposta.

Produrrà quanto segue output -

minion2:
   ----------
   httpd:
      ----------
      new:
         1
      old:
   httpd-cgi:
      ----------
      new:
         1
      old:
   libxslt1.1:
      ----------
      new:
         1.1.28-2build1
      old:
   nginx:
      ----------
      new:
         1.4.6-1ubuntu3.7
      old:
   nginx-common:
      ----------
      new:
         1.4.6-1ubuntu3.7
      old:
   nginx-core:
      ----------
      new:
         1.4.6-1ubuntu3.7
      old:
minion1:
   ----------
   httpd:
      ----------
      new:
         1
      old:
   httpd-cgi:
      ----------
      new:
         1
      old:
   libxslt1.1:
      ----------
      new:
         1.1.28-2build1
      old:
   nginx:
      ----------
      new:
         1.4.6-1ubuntu3.7
      old:
   nginx-common:
      ----------
      new:
         1.4.6-1ubuntu3.7
      old:
   nginx-core:
      ----------
      new:
         1.4.6-1ubuntu3.7
      old:

Ora hai installato un pacchetto. Per avviare i servizi per quel pacchetto, utilizzare il comando fornito di seguito.

root@saltmaster:/home/vagrant# salt '*' service.start nginx

Dopo aver eseguito questo comando, il risultato appare come mostrato nel blocco di codice sottostante.

minion1:
   True
minion2:
   True

Pertanto, abbiamo installato e avviato i servizi per il pacchetto "nginx" utilizzando il comando di base. Parliamo ora di come creare e installare pacchetti nel gestore di pacchetti Salt.

Pacchetti di costruzione

I pacchetti possono essere creati su qualsiasi sistema in cui è possibile installare Salt. Ci sono tre tipi di pacchetti e sono i seguenti.

  • Formula
  • Reactor
  • Conf

Vediamo ora come creare pacchetti utilizzando il Fomula File.

File formula

La maggior parte dei file del pacchetto si trova nella directory - / srv / spm / salt / per impostazione predefinita, ma il file pillar può essere posizionato nella directory - / srv / spm / pillar /. Il file Formula descrive il pacchetto.

Example

name: apache
os: RedHat
os_family: RedHat
version: 201607
release: 2
summary: Formula for installing Apache
description: Formula for installing Apache

Qui,

  • Name- Il nome del pacchetto. Qui, il nome del pacchetto èapache.

  • os - Viene utilizzato per sapere quali sistemi operativi possono supportare questo pacchetto.

  • os_family - Viene utilizzato per sapere quali famiglie di sistemi operativi possono supportare questo pacchetto.

  • Version- La versione del pacchetto. È specificato in un formato AAAAMM.

  • Release - Questo campo si riferisce principalmente al rilascio di una versione.

  • Summary - Breve descrizione del pacchetto.

  • Description - Una descrizione più dettagliata del pacchetto.

REATTORE

I file del reattore risiedono in /srv/spm/reactor/ directory.

CONF

I file in questo tipo di pacchetto sono file di configurazione per Salt, che normalmente risiedono in /etc/salt/directory. I file di configurazione per pacchetti diversi da Salt possono e devono essere gestiti con un Salt State (utilizzando un tipo di pacchetto formula).

Continuiamo con i seguenti passaggi per creare un pacchetto.

  • Crea un file FORMULA e posizionalo nella radice della cartella del pacchetto.

  • Assembla i file formula in una cartella nel sistema di compilazione.

  • Correre spm build. Il pacchetto viene creato e posizionato nella cartella / srv / spm_build. Il comando seguente viene utilizzato per creare un pacchetto.

spm build /path/to/salt-packages-source/formula
  • Ora copia il file .spm file in una cartella nel sistema di repository.

  • Puoi condividere il file srv/spm_build cartella sulla rete o copia i file sul tuo FTP o sul server web.

  • Genera metadati repo utilizzando il seguente comando.

spm create_repo /srv/spm_build

Installazione di pacchetti

Questa sezione spiega come installare i pacchetti del gestore di pacchetti Salt.

Configura repository remoti

Per configurare i repository remoti, Salt Master deve sapere dove si trova il repository attraverso un processo di configurazione.

I file sono in /etc/salt/spm.repos.d/spm.repo directory.

Example

file_repository:
   url: https://spm.example.com/

Qui, il file contiene il nome del repository e il collegamento al repository. Puoi anche utilizzare http, https, ftp o il percorso del file. Per utilizzare il percorso del file, è possibile accedervi utilizzando l'URL: file: /// srv / spm_build.

Aggiorna metadati

Dopo che il repository è stato configurato sul master Salt, i metadati del repository vengono scaricati utilizzando il comando seguente.

spm update_repo

Aggiorna file root

I pacchetti SPM si trovano nella directory srv / spm / salt. Aggiungi il seguente percorso alle radici dei file su Salt master,

file_roots:
   base:
      1. /srv/salt
      2. /srv/spm/salt

Ora riavvia il salt master.

Installa il pacchetto Apache

Per installare il pacchetto apache, utilizzare il seguente comando.

spm install apache

È inoltre possibile eseguire l'installazione direttamente dal file SPM utilizzando il comando seguente.

spm local install /srv/spm/apache-201607-1.spm

Rimozione di un pacchetto

Per rimuovere un pacchetto, ad esempio - apache, usa il seguente comando,

spm remove apache

Nota che, se qualche file è stato modificato, non verrà rimosso.