Virtualizzazione con VirtualBox, Qemu, Docker e Vagrant

Slides:



Advertisements
Presentazioni simili
Come installare Ubuntu Linux. Come procurarsi Ubuntu Acquistando riviste del settore: - -
Advertisements

A.s Mauro Sabella. Play Store e gestione delle applicazioni Il fulcro del sitema operativo Android è il Play Store, dal quale possiamo installare.
LTSP (Linux Terminal Server Project) GNU/Linux ed Workshop di Enrico Teotti powered with Gentoo Linux Linux Day LUG Mantova.
Corso gratuito di Linux. Linux User Group Mantova
C'era una volta CodiceRibelle. Multimedia e Linux Streamtuner Asunder.
Indice 1.Cos'è Google DriveCos'è Google Drive 2.Crea e lavoraCrea e lavora 3.VisualizzareVisualizzare 4.Condividi come e con chi preferisciCondividi come.
Effetti grafici con compiz-fusion Come ottenere un desktop accattivante su UBUNTU.
Orientamento. Il Kernel Il Kernel è un programma scritto in linguaggio vicino all'hardware che ha il compito di fornire ai processi in esecuzione sul.
User Mode Linux. Cos'è user mode linux ● User mode linux è un kernel linux che gira come un'applicazione nello spazio utente.
OpenWrt Diego Furlan. Panoramica ● Presentazione ● Download software ● Configurazione software ● Compilazione firmware ● Upload firmware ● Configurazione.
Gestione dei Software in GNU/Linux HackLab Catanzaro Installazione software da sorgente 8° Lezione GNU/Linux Base
Cos'e' e cosa ci si puo' fare Andrea Trentini
Programmare “per gioco” SCRATCH Lo programmerò. Programmerò solo per lei.
Gruppo Alpini Rivoli sezione Torino
The amnesico incognico live sistem
Corso di Elementi di Informatica
Infrastruttura cloud servizi realizzata nella Sezione di Napoli
Corso per Webmaster base
A scuola con il computer
Ambienti di Programmazione per il Software di Base
“Vivere insieme” – Lezione6
Riccardo Veraldi - Massimo Donatelli CCR 3-4 Marzo 2008
Compilazione del kernel Linux
WPC069 Il deployment automatizzato di Windows 10
“Vivere insieme” – Lezione4
Corso «Nozioni di Informatica» – riepilogo di alcuni concetti visti
I/O redirection AND PIPES
Sicurezza e protezione
I PROCESSI.
Pronto.
HackLab Catanzaro Installazione DEBIAN Lezione 2
Breve report su corso RedHat Enterprise Virtualization (RH318)
Terza Lezione → Navigare nel file System → parte 2
The Virtual Machine Monitor Introduzione. Installazione. Utilizzo.
KVM QEMU Virtual Machine Manager Massimo Nuvoli
HO UNA LIVE COSA POSSO FARE? Adriano Ciaghi.
I PERMESSI IN LINUX.
Virtualbox
I comandi.
“VIRTUAL BOX E CONDIVISIONE FILE”
Ambienti di Programmazione per il Software di Base
Sistema Operativo - DietPI
APACHE2-PHP su Raspberry
LA GESTIONE DEI PACCHETTI
Gruppo Proxmox ImoLUG: vedere provare condividere
Sviluppo di server web e sistema di caching per contenuti dinamici
Creare un server casalingo - 1
ai termini e ai principi informatici utili per utilizzare Linux
OLPC-Italia Brescia 16 Ottobre 2008.
Crittografia e sicurezza
LA GESTIONE DEI PACCHETTI
* Il Sistema Operativo GNU/Linux * Sistema Operativo e Applicazioni
Crittografia e sicurezza
Creare un server casalingo - 5
Creare un server casalingo - 2
Operazioni pianificate
Versionare il Codice Sorgente usando Git e Github
SAS® OnDemand for Academics SAS Studio
Creare un server casalingo - 6
Fedora 21 – presente e futuro
Virtualizzazione desktop e server
1.
BookingApp La tecnologia di domani – già oggi In collaborazione con.
IL DISASTER RECOVERY Ing. Massimiliano Zuffi
Ambienti di Programmazione per il Software di Base
Introduzione alla nuova versione di PowerPoint
Processi e thread in Windows 2000
Introduzione alla nuova versione di PowerPoint
PowerShell di Windows PowerShell è un shell che mette a disposizione un prompt interattivo e un interprete a riga di comando , per le sue caratteristiche.
CLOUD.
Transcript della presentazione:

Virtualizzazione con VirtualBox, Qemu, Docker e Vagrant

Che cos’è la virtualizzazione La virtualizzazione consiste nell’operazione di creare una versione virtuale di qualcosa, un computer, un dispositivo di memoria di massa, una risorsa di rete https://en.wikipedia.org/wiki/Virtualization

HyperVisor La virtualizzazione Hardware si riferisce alla creazione di una macchina virtuale che si comporta come un reale computer con sistema operativo. Il software eseguito nelle macchine virtuali è separato dalle risorse hardware La macchina host è la macchina su cui viene effettuata la virtualizzazione e la macchina guest è la virtual machine. Il software o firmware che crea una macchina virtuale sulla macchina host è chiamato hypervisor o Gestore di Macchine virtuali Snapshot è una istantanea di una macchina virtuale creata in un determinato momento che permette di ripristinarla a una stato precedente. E’ molto utile da fare come backup prima di un’operazione pericolosa, in modo da ripristinare i dati. Virtualbox e Qemu sono esempi di questa tecnologia

Operating-system-level virtualization La virtualizzazione a livello di sistema operativo, conosciuta anche come containerizzazione, è una capacità del sistema operativo per cui il kernel permette l’esistenza di più spazi utente. Queste istanze vengono chiamate container. Un programma che gira in un container può solo vedere il contenuto del container e i dispositivi assegnati allo stesso Esempio di questa tecnologia risulta Docker

VirtualBox sudo apt install virtualbox Scarichiamo Kali Linux, in particolare la versione light da 800 MB da questo sito http://cdimage.kali.org/kali-2017.3/kali- linux-light-2017.3-amd64.iso Apriamo Virtualbox Digitiamo il nome della nostra Macchina Virtuale. Digitando Debian ci propone in Automatico il Sistema operativo Debian e la versione a 64 bit. Premiamo su Avanti Scegliamo la Ram da utilizzare. Attenzione non utilizzate mai troppa in modo da non danneggiare il sistema host. Premiamo su Avanti Creiamo una Nuova Macchina Virtual VDI. Clicchiamo su Crea La macchina Virtuale viene creata. Facciamo doppio Click sull’icona della nostra macchina virtuale. Si avvierà e chiederà la iso del sistema operativo. Scegliamo la iso di Kali e si avvierà la nostra distribuzione linux.

Creare una Snapshot Quando chiudiamo con la X una finestra di una macchina virtuale, ci propone o di spegnere la macchina oppure di salvarne lo stato in modo da riprenderne l’esecuzione dove l’avevamo lasciata.

QEMU – vm da riga di comando QEMU è molto più di un hypervisor, ma ci permette anche di emulare anche altri pc e processori utilizzando KVM. Vediamo se è supportato dal nostro processore egrep ‘(vmx|svm)’ /proc/cupinfo Installiamo qemu e i connettori di rete per poter effettuare la connessione ad internet sudo apt install qemu-kvm bridge-utils Creiamo una immagine di 8 GB per la macchina virtuale qemu-img create -f qcow2 virtuale.qcow2 8G Possiamo usare anche uno strumento Grafico sudo apt install virt-manager virt-manager Possiamo creare anche qui snapshot chiudendo la macchina e indicando Salva

Docker Lo svantaggio delle macchine virtuali risulta nel fatto che dobbiamo replicare lo spazio su disco, installarne tutti i programmi, farne gli aggiornamenti tutte le volte che ne creiamo una. I container permettono la distribuzione dei programmi in modo uniforme su qualsiasi distro Con Docker possiamo avere già delle immagini già pronte ed avviabili corrispondenti per esempio a una istanza di Nextcloud, di Mysql, di un server di posta elettronica, di un NAS. Possiamo creare più container Docker nella stessa macchina e farli comunicare tra di loro. Per esempio possiamo creare un container Wordpress e farlo comunicare con un container MariaDB.

Installare Docker sudo apt install docker docker-compose Recuperiamoci un’immagine docker di Owncloud sudo docker pull owncloud Avviamo il servizio docker sudo systemctl start docker Eseguiamo il container docker appena creato con sudo docker run -d -p 8043:80 owncloud Con -p specifichiamo che la porta 80 del container corrisponderà alla porta 8043 dell’host. Attenzione! La porta 8043 non deve essere in esecuzione, altrimenti darà errore! Questa installazione di Owncloud è in un container, pertanto non interferirà con i file di configurazione di apache sulla vostra macchina Ci viene restituito un lungo codice identificativo del container Per arrestare il container sudo docker stop identificativo_container

Gestione di container Per vedere tutti i container disponibili sul nostro sistema sudo docker ps –all Qui è contenuto il container ID. Occorre fare attenzione allo spazio occupato dalla cartella /var/lib/docker, che si può riempire molto facilmente sudo du -h /var/lib/docker Possiamo il comando sudo docker rmi id_container per rimuovere un container che non ci serve più

Docker start docker start owncloud ci fa avviare un nuovo container docker start id_container ci fa riavviare il container stoppato

Componiamo più container assieme Scarichiamo l’immagine di un container mariadb sudo docker pull mariadb Creiamo una cartella docker-owncloud e creiamo un file docker-compose.yml Nel link sottostante potete trovare il file di configurazione https://gist.github.com/computerluca/bec217dda3dab13cee4 70bb78bfc21dc sudo docker-compose up -d per avviare i due container sudo docker-compose stop per fermare il container sudo docker-compose start per far ripartire il container sudo docker-compose down per eliminare i due container

Connetterci alla shell di un container docker sudo docker exec -t -i nome_contenitore /bin/bash

Vagrant: gestione di più macchine virtuali Le macchine create con VirtualBox devono essere installate, devono essere fatti gli aggiornamenti, devono essere installati i programmi. Con vagrant possiamo automatizzare la creazione di molte macchine virtuali Scarichiamo Vagrant da qui https://releases.hashicorp.com/vagrant/2.0.1/vagrant_2.0.1_x 86_64.deb Creiamo una cartella E digitiamo il comando vagrant init debian/jessie64 vagrant up Apriamo VirtualBox e ci troveremo la nostra VirtualBox avviata

Gestione di un box vagrant vagrant reload (Riavviamo la macchina) vagrant suspend (ibernazione della macchina) vagrant resume (risvegliamo la macchina dall’ibernazione) vagrant halt (spegnimento della macchina) vagrant destroy (cancellazione di tutti i file della macchina) Con vagrant status possiamo avere lo stato di una macchina Possiamo connetterci via ssh alla macchina vagrant ssh

Ancora su Vagrant La debian installata avrà la configurazione della tastiera in inglese Per configurare la tastiera in italiano sudo apt install console-data Nel Vagrant file possiamo specificare alcuni comandi Che devono essere eseguiti automaticamente all’avvio della macchina (per esempio l’aggiornamento del sistema, l’installazione di alcuni pacchetti) In fondo al VagrantFile decommentiamo queste righe. Indichiamo pertanto a Vagrant di effettuare gli aggiornamenti e installare xorg, che non è di default installato nell’immagine di Vagrant vagrant up --provision config.vm.provision "shell", inline: <<-SHELL apt-get update apt-get install -y xorg apt-get install -y xfce4 SHELL

Il formato per la distribuzione dei pacchetti snap Snappy è un gestore di pacchetti ideato da Canonical Ltd. inizialmente solo per Ubuntu, ma è adottato anche da altre distribuzioni. Parte di Ubuntu Core, il tool possiede un meccanismo per applicare aggiornamenti software. Usa il concetto di container per la distribuzione di software indipendente dalla distribuzione Wikipedia Snaps are containerised software packages that are simple to create and install. They auto-update and are safe to run. And because they bundle their dependencies, they work on all major Linux systems without modification. https://snapcraft.io/

Installare Snap sudo apt install snapd → installiamo snapd sudo service snapd start → avviamo il servizio snapd Per il supporto nelle diverse distribuzione visitate questo sito https://tutorials.ubuntu.com/tutorial/basic-snap-usage#1 snapd è il servizio che gira sulla vostra macchina e tiene traccia di tutti i pacchetti snap installati, interagisce con lo store, vi permette di installare e rimuovere pacchetti

Operazioni di base con snap Cercare un pacchetto che contiene la parola “prova” snap find prova Installare un pacchetto sudo snap install hello-world Lista dei pacchetti snap installati snap list L’aggiornamento dei pacchetti viene fatto in automatico Ma se si vuole forzare l’aggiornamento si usa il comando sudo snap refresh hello-world Si può rimuovere un pacchetto con il comando sudo snap remove hello-world

Versioni e canali Ci sono 4 canali: Stabile, Release candidate (pochi giorni prima del rilascio stabile), Beta (non ancora finito, ma abbastanza stabile), Edge (molto instabile) Di default viene utilizzato il canale Stabile sudo snap refresh hello --channel=beta Il pacchetto passa alla versione beta. Possiamo installare un pacchetto direttamente in un certo canale in questo modo sudo snap install hello --channel=beta Possiamo poi tornare alla versione precedente di un applicazione con un semplice comando sudo snap revert hello Per vedere le ultime modifiche fatte ai pacchetti snap (installazioni, rimozioni, aggiornamenti) si usa il comando sudo snap changes

Informazioni su uno snap snap info hello-world Possiamo vedere il nome, la descrizione del pacchetto, possiamo vedere il canale attuale del pacchetto, se è aggiornato, la versione attuale snap find cerca solo i pacchetti nel canale stabile Possiamo usare il comando find per filtrare una determinata sezione (i giochi) snap find --section games snap refresh → aggiorna tutti i pacchetti snap Questo è tratto da due tutorialhttps://tutorials.ubuntu.com/tutorial/advanced-snap- usage https://tutorials.ubuntu.com/tutorial/basic-snap-usage Dove potete trovare maggiori informazioni sui pacchetti snap