Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

10.2.3. Stati del sale e altre caratteristiche‌


Sebbene l'esecuzione remota sia un elemento importante, è solo una piccola parte di ciò che SaltStack può fare.

Quando si configura una nuova macchina, spesso si eseguono molti comandi e test per determinare i dettagli del sistema prima dell'installazione. Queste operazioni possono essere formalizzate in modelli di configurazione riutilizzabili chiamati file di stato. Le operazioni descritte nei file di stato possono quindi essere eseguite con un unico stato.applica comando sale.

Per risparmiare un po' di tempo, puoi fare affidamento su molti file di stato pronti all'uso che sono stati creati dalla comunità e che sono distribuiti in "Formule del sale":

https://docs.saltstack.com/en/latest/topics/development/conventions/formulas. html

Ci sono molte altre caratteristiche che possono essere combinate:

• Esecuzione programmata di azioni

• Definire le azioni in risposta agli eventi innescati dai servitori

• Raccogliere dati dai servitori

• Orchestrazione di una sequenza di operazioni su più servitori

• Applicazione di stati su SSH senza installare il servizio salt-minion

• Provisioning di sistemi su infrastrutture cloud e loro gestione

• E altro ancora

SaltStack è piuttosto vasto e non possiamo assolutamente coprire tutte le funzionalità qui. In effetti, ci sono libri dedicati interamente a SaltStack e anche la documentazione online è molto ampia. Dai un'occhiata se vuoi saperne di più sulle sue caratteristiche:

https://docs.saltstack.com/en/latest/

Se gestisci un numero significativo di macchine, ti consigliamo di saperne di più su SaltStack poiché puoi risparmiare una notevole quantità di tempo durante l'implementazione di nuove macchine e sarai in grado di mantenere una configurazione coerente in tutta la tua rete.

Per darti un assaggio di come funziona con i file di stato, tratteremo un semplice esempio: come abilitare il repository APT e installare un pacchetto creato nella sezione 10.3.3, «Creazione di un repository di pacchetti per APT» [Pagina 269] e la sezione 10.3.2, «Creazione di pacchetti di configurazione” [pagina 263]. Registrerai anche una chiave SSH nell'account di root in modo da poter accedere da remoto in caso di problemi.

Per impostazione predefinita, i file di stato sono archiviati in /srv/sale sul maestro; sono file strutturati YAML con a .sl estensione. Proprio come per l'esecuzione di comandi, l'applicazione di uno stato si basa su molti moduli di stato:

https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html

https://docs.saltstack.com/en/latest/ref/states/all/

Trasferimento da aeroporto a Sharm /srv/salt/offsec.sls file chiamerà tre di questi moduli:


offsec_repository: pkgrepo.gestito:

- nome: deb http://pkgrepo.offsec.com offsec-internal main

- file: /etc/apt/sources.list.d/offsec.list

- URL_chiave: salt://offsec-apt-key.asc

- require_in:

- pkg: offsec-default


offsec-default: pkg.installed


ssh_key_for_root: ssh_auth.present:

- utente: root

- nome: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali

offsec_repository: pkgrepo.gestito:

- nome: deb http://pkgrepo.offsec.com offsec-internal main

- file: /etc/apt/sources.list.d/offsec.list

- URL_chiave: salt://offsec-apt-key.asc

- require_in:

- pkg: offsec-default


offsec-default: pkg.installed


ssh_key_for_root: ssh_auth.present:

- utente: root

- nome: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali


I repository_offsec lo stato fa affidamento sul pkgrepo modulo di stato. L'esempio usa il gestito

funzione in quel modulo di stato per registrare un repository di pacchetti. Con il chiave_url attributo, tu

far sapere a salt che la chiave GPG (ASCII blindata) richiesta per verificare la firma del repository può essere recuperata da /srv/salt/offsec-apt-key.asc sul maestro di sale. Il richiedono_in attributo assicura che questo stato venga elaborato prima del offsec-default, poiché quest'ultimo necessita del repository correttamente configurato per poter installare il pacchetto.

I offsec-default state installa il pacchetto con lo stesso nome. Ciò mostra che il nome della chiave è spesso un valore importante per gli stati, sebbene possa sempre essere sovrascritto con a Nome attributo (come fatto per il primo stato). Per casi semplici come questo, questo è sia leggibile che conciso.

L'ultimo stato (ssh_key_for_root) aggiunge la chiave SSH fornita in Nome attribuire a /root/.ssh/ chiavi_autorizzate (l'utente di destinazione è impostato nel Utente attributo). Nota che qui abbiamo accorciato la chiave per la leggibilità, ma dovresti inserire la chiave completa nell'attributo name.

Questo file di stato può essere successivamente applicato a un determinato servitore:


server# Salt kali-scratch state.applica offsec

kali-graffio:

----------

ID: offsec_repository Funzione: pkgrepo.managed

Nome: deb http://pkgrepo.offsec.com offsec-internal main Risultato: True

Commento: configurato il repository del pacchetto 'deb http://pkgrepo.offsec.com offsec-internal

principale'

Iniziato: 06:00:15.767794

Durata: 4707.35 ms Modifiche:

----------

pronti contro termine:

deb http://pkgrepo.offsec.com offsec-internal main

----------

ID: offsec-defaults Funzione: pkg.installed

Risultato: vero

Commento: i seguenti pacchetti sono stati installati/aggiornati: offsec-defaults Avviato: 06:00:21.325184

Durata: 19246.041 ms Modifiche:

----------

offsec-default:

----------

nuovo:

1.0

vecchio:

----------

ID: ssh_key_for_root Funzione: ssh_auth.present

server# Salt kali-scratch state.applica offsec

kali-graffio:

----------

ID: offsec_repository Funzione: pkgrepo.managed

Nome: deb http://pkgrepo.offsec.com offsec-internal main Risultato: True

Commento: configurato il repository del pacchetto 'deb http://pkgrepo.offsec.com offsec-internal

principale'

Iniziato: 06:00:15.767794

Durata: 4707.35 ms Modifiche:

----------

pronti contro termine:

deb http://pkgrepo.offsec.com offsec-internal main

----------

ID: offsec-defaults Funzione: pkg.installed

Risultato: vero

Commento: i seguenti pacchetti sono stati installati/aggiornati: offsec-defaults Avviato: 06:00:21.325184

Durata: 19246.041 ms Modifiche:

----------

offsec-default:

----------

nuovo:

1.0

vecchio:

----------

ID: ssh_key_for_root Funzione: ssh_auth.present


Nome: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali Risultato: Vero

Commento: è stata aggiunta la chiave host autorizzata AAAAB3NzaC1yc2...89C4N per l'utente root Inizio: 06:00:40.582539

Durata: 62.103 ms Modifiche:

---------- AAAAB3NzaC1yc2...89C4N:

New


Riepilogo per kali-scratch

------------

Riuscito: 3 (cambiato=3)

Non riuscito: 0

------------

Stati totali eseguiti: 3

Tempo di esecuzione totale: 24.015 s

Nome: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali Risultato: Vero

Commento: è stata aggiunta la chiave host autorizzata AAAAB3NzaC1yc2...89C4N per l'utente root Inizio: 06:00:40.582539

Durata: 62.103 ms Modifiche:

---------- AAAAB3NzaC1yc2...89C4N:

New


Riepilogo per kali-scratch

------------

Riuscito: 3 (cambiato=3)

Non riuscito: 0

------------

Stati totali eseguiti: 3

Tempo di esecuzione totale: 24.015 s


Può anche essere associato in modo permanente al seguace registrandolo nel /srv/sale/top.sls

file, che viene utilizzato dal stato.alto stato comando per applicare tutti gli stati rilevanti in un unico passaggio:


server# cat /srv/sale/top.sls

base:

kali-graffio:

- offsec

server# sale kali-scratch state.highstate

kali-graffio:

----------

ID: offsec_repository Funzione: pkgrepo.managed

Nome: deb http://pkgrepo.offsec.com offsec-internal main Risultato: True

Commento: il repository del pacchetto 'deb http://pkgrepo.offsec.com offsec-internal main' è già

configurato Avviato: 06:06:20.650053

Durata: 62.805 ms Modifiche:

----------

ID: offsec-defaults Funzione: pkg.installed

Risultato: vero

Commento: il pacchetto offsec-defaults è già installato Iniziato: 06:06:21.436193

Durata: 385.092 ms Modifiche:

----------

ID: ssh_key_for_root

server# cat /srv/sale/top.sls

base:

kali-graffio:

- offsec

server# sale kali-scratch state.highstate

kali-graffio:

----------

ID: offsec_repository Funzione: pkgrepo.managed

Nome: deb http://pkgrepo.offsec.com offsec-internal main Risultato: True

Commento: il repository del pacchetto 'deb http://pkgrepo.offsec.com offsec-internal main' è già

configurato Avviato: 06:06:20.650053

Durata: 62.805 ms Modifiche:

----------

ID: offsec-defaults Funzione: pkg.installed

Risultato: vero

Commento: il pacchetto offsec-defaults è già installato Iniziato: 06:06:21.436193

Durata: 385.092 ms Modifiche:

----------

ID: ssh_key_for_root


Funzione: ssh_auth.present

Nome: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali Risultato: Vero

Commento: la chiave host autorizzata AAAAB3NzaC1yc2...89C4N è già presente per

utente root

Iniziato: 06:06:21.821811

Durata: 1.936 ms Modifiche:


Riepilogo per kali-scratch

------------

Successo: 3

Non riuscito: 0

------------

Stati totali eseguiti: 3

Tempo di esecuzione totale: 449.833 ms

Funzione: ssh_auth.present

Nome: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali Risultato: Vero

Commento: la chiave host autorizzata AAAAB3NzaC1yc2...89C4N è già presente per

utente root

Iniziato: 06:06:21.821811

Durata: 1.936 ms Modifiche:


Riepilogo per kali-scratch

------------

Successo: 3

Non riuscito: 0

------------

Stati totali eseguiti: 3

Tempo di esecuzione totale: 449.833 ms


Il miglior sistema operativo cloud computing su OnWorks: