Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

10.2.2. Esecuzione di comandi sui servitori‌


Non appena i minion sono collegati, puoi eseguire i comandi su di loro dal master:


maestro# salt '*' test.ping

kali-graffio:

Vero maestro di kali:

I veri

maestro# salt '*' test.ping

kali-graffio:

Vero maestro di kali:

I veri


Questo comando chiede a tutti i servitori (il '*' è un jolly che prende di mira tutti i servitori) per eseguire il ping funzione dal test modulo di esecuzione. Questa funzione restituisce a I veri valore sul successo ed è un modo semplice per garantire che la connessione funzioni tra il maestro e i vari servitori.

Puoi anche prendere di mira un servitore specifico fornendo il suo identificatore nel primo parametro, o eventualmente un sottoinsieme di servitori usando un carattere jolly meno generico (come '*-scratch' o 'kali-*'). Ecco un esempio di come eseguire un comando shell arbitrario sul minion kali-scratch:


maestro# salt kali-scratch cmd.shell 'uptime; uname -a'

kali-graffio:

05:25:48 fino a 44 min, 2 utenti, media di carico: 0.00, 0.01, 0.05

Linux kali-scratch 4.5.0-kali1-amd64 #1 SMP Debian 4.5.3-2kali1 (2016-05-09) x86_64

GNU / Linux

maestro# salt kali-scratch cmd.shell 'uptime; uname -a'

kali-graffio:

05:25:48 fino a 44 min, 2 utenti, media di carico: 0.00, 0.01, 0.05

Linux kali-scratch 4.5.0-kali1-amd64 #1 SMP Debian 4.5.3-2kali1 (2016-05-09) x86_64

GNU / Linux


Riferimento modulo sale Sono disponibili molti moduli di esecuzione per tutti i tipi di casi d'uso. Non li tratteremo tutti qui, ma l'elenco completo è disponibile su https://docs.saltstack.com/ it/latest/ref/modules/all/index.html. Puoi anche ottenere una descrizione di tutti i moduli di esecuzione e le loro funzioni disponibili su un determinato servitore con il sale tirapiedi sys.doc comando. L'esecuzione di questo comando restituisce un elenco molto lungo di funzioni, ma è possibile filtrare l'elenco passando come parametro il nome di una funzione o di un modulo preceduto dal modulo padre:

maestro# salt kali-scratch sys.doc disk.usage

uso del disco:


Restituisci le informazioni sull'utilizzo per i volumi montati su questo

tirapiedi


Uno dei moduli più utili è pkg, che è un'astrazione del gestore di pacchetti che si basa sul gestore di pacchetti appropriato per il sistema (apt-get per Debian e i suoi derivati ​​come Kali).

I pkg.refresh_db il comando aggiorna l'elenco dei pacchetti (cioè esegue apt-get update) mentre pkg.aggiornamento installa tutti gli aggiornamenti disponibili (esegue apt-get upgrade or apt-get dist-upgrade, a seconda delle opzioni ricevute). Il pkg.list_upgrades comando elenca le operazioni di aggiornamento in sospeso (che verrebbero eseguite dal pkg.upgrade dist_upgrade=Vero comando).

I servizio modulo è un'astrazione del gestore del servizio (systemd nel caso di Kali), che ti consente di eseguire tutte le solite systemctl operazioni: servizio.abilita, servizio.disabilita, servizio. cominciare, servizio.stop, servizio.riavvioe servizio.ricarica:


maestro# salt '*' service.enable ssh

kali-graffio:

Vero maestro di kali:

I veri

maestro# salt '*' service.start ssh

maestro di kali:

I veri

kali-graffio:

I veri

maestro# salt '*' pkg.refresh_db

kali-graffio:

----------

maestro di kali:

----------

maestro# salt '*' pkg.upgrade dist_upgrade=True

kali-graffio:

----------

modifiche:

----------

file di base:

----------

nuovo:

1:2016.2.1

vecchio:

1:2016.2.0

[...]

zaprossi:

----------

nuovo:

2.5.0-0kali1 vecchio:

2.4.3-0kali3

commento: risultato:

I veri

maestro# salt '*' service.enable ssh

kali-graffio:

Vero maestro di kali:

I veri

maestro# salt '*' service.start ssh

maestro di kali:

I veri

kali-graffio:

I veri

maestro# salt '*' pkg.refresh_db

kali-graffio:

----------

maestro di kali:

----------

maestro# salt '*' pkg.upgrade dist_upgrade=True

kali-graffio:

----------

modifiche:

----------

file di base:

----------

nuovo:

1:2016.2.1

vecchio:

1:2016.2.0

[...]

zaprossi:

----------

nuovo:

2.5.0-0kali1 vecchio:

2.4.3-0kali3

commento: risultato:

I veri

Come esempio più concreto, potresti facilmente impostare un distribuito Nmap scansiona con dnmap. Dopo aver installato il pacchetto su tutti i minion, avviate il server in un primo terminale:


server# salt '*' pkg.install dnmap

[...]

server# vim dnmap.txt

server# server_dnmap -f dnmap.txt

server# salt '*' pkg.install dnmap

[...]

server# vim dnmap.txt

server# server_dnmap -f dnmap.txt


Supponendo che l'IP del server sia 1.2.3.4, puoi quindi dire a tutti i minion di avviare un processo client che si connette al server:


server# salt '*' cmd.run_bg template=jinja 'dnmap_client -s 1.2.3.4 -a {{ grains.id }}'

kali-graffio:

----------

pid:

17137

[...]

server# salt '*' cmd.run_bg template=jinja 'dnmap_client -s 1.2.3.4 -a {{ grains.id }}'

kali-graffio:

----------

pid:

17137

[...]


Nota che l'esempio usa cmd.run_bg per eseguire il dnmap_client comando in background. Non aspettare che finisca, poiché è un processo di lunga durata. Sfortunatamente, non si uccide correttamente quando si interrompe il server, quindi potrebbe essere necessario ripulirlo:


server# salt '*' cmd.shell 'pkill -f dnmap_client'

server# salt '*' cmd.shell 'pkill -f dnmap_client'


Il miglior sistema operativo cloud computing su OnWorks: