4 slide per pagina

Transcript

4 slide per pagina
Le workstation
Manuale di Laboratorio
Laboratorio di Amministrazione di
Sistemi - a.a. 2006/2007
Amministrazione e macchine
• Molte delle attività che svolgeremo
– richiedono i privilegi di amministratore
• modifica di permessi, invio di segnali, uso di funzioni
di rete riservate, manipolazione dei filesystem, ...
– possono di conseguenza causare danni
• cancellazione di file di sistema, modifica di file di
configurazione, ...
– non sono quindi attuabili su macchine la cui
stabilità deve essere garantita
• Le stazioni di lavoro del laboratorio
possono essere utilizzate in modalità Linux
o Windows, scegliendo al boot
• Utilizzeremo sempre Linux
• Le modalità di login sono descritte nel
materiale disponibile in laboratorio
• RICORDATE DI SPEGNERE LE
MACCHINE AL TERMINE DELL'USO
Virtualizzazione
• Sistemi come VMware, Xen, Qemu, UML, KVM lanciati
come una normale applicazione in un sistema (host )
emulano il funzionamento di un PC (o altro hardware), e
permettono quindi l'esecuzione di un altro S.O. (guest )
• Utilizzeremo Qemu per lanciare macchine virtuali su cui
lavorare con pieni privilegi
– libertà d'azione
– facilità di ripristino
Qemu
• Qemu è un progetto di Fabrice Bellard rilasciato opensource sotto licenza GPL
• Software e documentazione sono disponibili sul sito
dell'autore
http://fabrice.bellard.free.fr/qemu/
• L'avvio di Qemu con le (numerose) giuste opzioni è
facilitato da uno script predisposto appositamente
File immagine
• È possibile inizializzare un numero arbitrario di file "diff"
diversi, tutti basati sulla stessa immagine di riferimento
– persistenza delle modifiche apportate singolarmente a
diverse macchine virtuali, anche più d'una per studente
– spazio occupato molto contenuto
• Se cambia l'immagine di riferimento i "diff" diventano
inutilizzabili (vedere più avanti come cancellarli)
File immagine
• L'immagine binaria dell'intero disco
visto dal sistema operativo guest è
condensata in un singolo file
• Replicare tale file per ogni macchina
virtuale di ogni studente è impossibile
per vincoli di spazio
Accesso
ai file
Diff img.
(Read-Write)
Base img.
• Qemu consente una soluzione molto
efficace per mezzo di file "differenza"
(Read Only)
Script di avvio
• Lanciando
/opt/qemu/goqemu.sh [parametro]
non solo si avvia Qemu ma si gestisce anche in modo
ottimale l'immagine "diff"; lo script infatti:
– copia la versione compressa del file "diff" dalla home
dell'utente alla /tmp locale
– al termine della sessione di lavoro esegue una copia di
backup del file diff originale
– comprime il file "diff" utilizzato e lo copia nella home
– attenzione alla quota disco!
Script di avvio
• Il parametro può essere
– un numero N compreso tra 1 e 9, per avviare diverse
macchine linux
– la stringa "win" per avviare una (sola) macchina windows (in
via di implementazione)
• Precauzioni:
– non avviare due macchine con lo stesso numero
– attendere il completo avvio di una prima di avviarne un'altra
• Nota: Qemu viene eseguito in una finestra del sistema grafico
dell'host. Cliccando sulla finestra tutti i sistemi di input vengono
"catturati" da Qemu, per "liberarli" premere CTRL+ALT
Login e logout
• Sulle macchine virtuali sono definiti
– un account standard che all'occorrenza può eseguire
comandi come super-utente
• utente admin, password admin
– il super-utente vero e proprio
• utente root, password gennaio.marzo
• Benchè virtuali, le macchine devono essere spente
correttamente per evitare corruzioni del file "diff" dovute al
buffering
– comando halt, il primo esempio di operazione ristretta
Script e file diff
• Nel caso un crash di sistema o altri problemi corrompano
l'immagine della MV, e quindi questa non si avvii più
correttamente, è possibile semplicemente eliminare i file
diff per ripristinare la situazione di partenza:
– linux.diff-N.tgz
nella propria home
– linux.diff-N
in /tmp
• Se la sessione di lavoro precedente a quella che ha
creato il problema era invece terminata correttamente, è
possibile recuperare il backup
– rinominare linux.diff-N.tgz.bak in linux.diff-N.tgz
Uso degli account
• Anche quando si lavora come sysadm, la quantità di
operazioni da svolgere coi privilegi di root è molto limitata
– è fortemente consigliabile utilizzare sempre l'account
standard, che anche in caso di errori può provocare danni
molto limitati
– esistono modi diversi per operare come root all'occorrenza
• comando su (switch user) permette di "diventare" l'utente
specificato come parametro, a patto di conoscerne la password
• comando sudo (super-user do) permette di eseguire un singolo
comando come root, se abilitati, senza conoscerne la password
Organizzazione
Architettura di rete
• È utile disporre di diversi terminali per ogni macchina
– digitando xterm & in una macchina virtuale si aprirà un suo
terminale sullo schermo dell'host
– se il sistema lamenta di non poter accedere al server X,
digitare il comando xhost + localhost sull'host
• Alcune esercitazioni prevedono l'uso contemporaneo di
diverse macchine virtuali (es. per svolgere in una rete i
ruoli di client - router - server)
– affollamento e confusione del desktop host
– suggerimento: lanciare macchine virtuali diverse su desktop
virtuali diversi dell'host
• In ogni macchina virtuale sono disponibili quattro interfacce
di rete:
– eth0
( indirizzo 10.0.2.2N )
• dà accesso ad una serie di macchine emulate da Qemu:
– router e host all'indirizzo 10.0.2.2
– dns all'indirizzo 10.0.2.3
– eth1
( indirizzo 172.20.2.N )
• utilizzabile per connettere le diverse macchine virtuali tra di loro
– eth2 ed eth3 funzionano come eth1 ma non sono configurate
di default. Le ethN di tutte le macchine virtuali lanciate su di
un host sono logicamente sulla vlan N
Architettura di rete
Esempio d'utilizzo
Vista dell'HOST offerta da Qemu - 10.0.2.2
Vista dell'HOST offerta da Qemu - 10.0.2.2
eth0 - 10.0.2.21
eth0 - 10.0.2.22
eth0 - 10.0.2.23
eth0 - 10.0.2.21
MV1
MV2
MV3
Client
eth1 eth2 eth3
eth1 eth2 eth3
eth1 eth2 eth3
10.1.1.1
eth1 eth2 eth3
eth0 - 10.0.2.22
VLAN3
10.9.9.1
Server
10.9.9.254
Router
10.1.1.254
eth1 eth2 eth3
VLAN1
VLAN2
eth0 - 10.0.2.23
eth1 eth2 eth3
VLAN1 (non usata)
VLAN2
non configurate
VLAN3
Gestione dei file
• Qemu, come qualsiasi software, non è privo di bug
– sconsigliabile fare affidamento esclusivamente sui file "diff"
come storage persistente
• Le macchine virtuali
– non hanno accesso a tutto ciò che è visibile dall'host, ad
esempio ai dispositivi USB
– non dispongono di browser web (indispensabili in sede
d'esame per la consegna dei file testati sulle MV)
– non dispongono di editor grafici, solo di vi
Indispensabile trasferire file da host a MV e viceversa
Esempi di scp
• Si è loggati sull'host come utente x0123456
• Si sta operando nella MV come utente admin
1) Si vuole copiare il file prova.txt dalla directory corrente della
MV alla propria home sull'host
scp prova.txt [email protected]:
[inserire la password di x0123456]
2) Si vuole copiare il file work.sh dalla directory test presente
sotto la propria home sull'host nella directory corrente della
MV
scp [email protected]:test/work.sh .
Gestione dei file
• Il trasferimento deve essere sempre pilotato dalla MV,
poichè l'host non ha modo di contattare le MV
• Si utilizza il comando scp (secure copy), che utilizza il
diffusissimo protocollo di comunicazione sicura ssh
– da MV a host:
scp sorgente_locale username@host:destinazione_remota
– da host a MV
scp username@host:sorgente_remota destinazione_locale
– in ogni caso chiederà la vostra password per autenticarvi
sull'host (impareremo ad automatizzare il passaggio)
– ricordate che da ogni MV l'host è visibile come 10.0.2.2
Esempi di scp
• Naturalmente scp può trasferire file anche tra macchine
virtuali diverse, ricordando che per la connessione tra MV
non si usa eth0 ma eth1, che ha indirizzo 172.20.2.N
1) Si sta operando come admin sulla MV1 e si vuole copiare il file
prova.txt dalla directory corrente alla home dell'utente root sulla MV2
scp prova.txt [email protected]:
[inserire la password dell'utente root della MV2]
2) Si sta operando come admin sulla MV1 e si vuole copiare il file
cmd.sh dalla home dell'utente admin sulla MV2 alla dir. corrente.
Quando l'utente sulla macchina remota coincide con quello che
lancia scp, si può omettere "username@"
scp 172.20.2.2:cmd.sh .
[inserire la password dell'utente admin della MV2]