50
CSOLUTION.IT LINUX DAY 2007 GNU/Linux User Group Perugia http://www.perugiagnulug.org

Virtualizzazione con Gnu/Linux e Xen

  • View
    694

  • Download
    0

Embed Size (px)

DESCRIPTION

Virtualizzazione con Gnu/Linux e Xen, su sistema operativo Debian, Linux Day 2007, Claudio Cardinali

Citation preview

Page 1: Virtualizzazione con Gnu/Linux e Xen

CSOLUTION.IT

LINUX DAY 2007

GNU/Linux User Group Perugia

http://www.perugiagnulug.org

Page 2: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

~$ whois Claudio Cardinali

✔ Socio ed attivista di ILS, Gnu Linux User Group di Perugia, A.I.P. Associazione informatici professionisti, O.P.S.I Osservatorio Privacy e Sicurezza, Sikurezza.org, no1984.

✔ Svolge attività di consulenza presso diverse aziende, principalmente in merito a tecnologie legate ad Internet, al networking ed alla sicurezza

✔ System Admin @ CSOLUTION.IT

✔ partner Network Accordance.it

Page 3: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Xen alla Debian WayXen alla Debian Way

Page 4: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Notizia di pochi mesi..

● acquisizione di XenSource per 500mln di dollari da parte di Citrix

● http://www.theregister.co.uk/2007/08/15/citrix_buys_xensource/

Page 5: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Agenda

● Virtualizzazione● Xen● Xen-tools● Xen-Shell● Argo/Argos● Enomalism● Xenman●

Page 6: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

virtualizzazione

● Per virtualizzazione si intende la creazione di una versione virtuale di una risorsa normalmente fornita fisicamente.

● Qualunque risorsa hardware o software può essere virtualizzata: sistemi operativi, memoria, spazio disco, applicativi, reti.

● Tra gli impieghi della virtualizzazione il più utilizzato è probabilmente la virtualizzazione di sistemi operativi.

● Via software è necessario un sistema operativo in esecuzione (host) che esegua un software di virtualizzazione che crei ad alto livello le varie virtual machine (guest) che girano come se fossero dei normali programmi e che comunicano con l'hardware solo indirettamnete, tramite il software di virtualizzazione che agisce a basso livello.

Page 7: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

VirtualizzazioneLa virtualizzazione può essere vista in diversi modi:

● Emulazione: la macchina virtuale simula completamente l'hardware, utilizzando un sistema operativo reale che poi "gira" per la CPU virtuale;

● Paravirtualizzazione: la macchina virtuale non simula un hardware ma offre speciali API che richiedono modifiche nel sistema operativo;

Page 8: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Paravirtualizzazione

● Contrariamente ad altri software di virtualizzazione, Xen non mira a creare un'emulazione dell'hardware di un generico computer x86 su cui far girare il sistema operativo, ma piuttosto di regolare e controllare l'accesso alle risorse fisiche della macchina da parte delle varie istanze delle macchine virtuali; questo approccio prende il nome di paravirtualizzazione ed è simile a ciò che si utilizza nel campo dei mainframe e dei supercomputer....

Page 9: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Debian minimaleDebian minimale

<< netinst >>

Page 10: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

xen-linux-system

● apt­get install xen­linux­system­2.6.18­5­xen­686 xen­linux­system­2.6.18­5­xen­vserver­686

XEN system with Linux 2.6.18 image on i686

This package depends on the binary Linux image and the correct hypervisor.

linux­image­2.6.18­5­xen­686

 xen­hypervisor­3.0.3­1­i386­pae

The hypervisor is the "core" for XEN itself.  It gets booted by the boot

 loader and controls cpu and memory, sharing them between your

 administrative domain (Domain 0) and the virtual guest systems.

Page 11: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

libc6-xen

● apt­get install libc6­xenThis set of libraries are optimized for the Xen hypervisor, 

and will be

 selected instead when running under Xen.

Page 12: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

bridge-utils

● apt­get install bridge­utils

 Utilities for configuring the Linux ethernet bridge

 This package contains utilities for configuring the Linux ethernet bridge in Linux 2.4 or later. The Linux ethernet bridge can be used for connecting multiple ethernet devices together. The connecting is fully transparent: hosts connected to one ethernet device see hosts connected to the other ethernet devices directly.

Page 13: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Xen Network (1)url: http://wiki.xensource.com/xenwiki/XenNetworking

When xend starts up

1. xenbr0 bridge is created

2. physical interface eth0 brought down

3. ip and mac addresses of eth0 moved to virtual interface veth0

4. eth0 renamed peth0

5. veth0 renamed eth0

6. peth0 mac changed, arp turned off

7. peth0 is attached to xenbr0

8. vif0.0 is attached to xenbr0

9. bridge, peth0, eth0 brought up

Page 14: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Xen Network (2)url: http://wiki.xensource.com/xenwiki/XenNetworking

When domU starts

1. vif.0 is attached to xenbr0

2. vif.0 brought up

The bridges are domain independent and are used to bridge traffic between domains and the exterior. The bridges and their interfaces are visible from dom0 because it is the host that run Xen.

Page 15: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Xen Network (3)url: http://wiki.xensource.com/xenwiki/XenNetworking

Page 16: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

ifconfigpeth0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF

inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link

UP BROADCAST RUNNING NOARP MTU:1500 Metric:1

RX packets:129424 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:10592470 (10.1 MiB) TX bytes:0 (0.0 b)

Base address:0xdce0 Memory:fc3e0000-fc400000

vif0.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF

inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link

UP BROADCAST RUNNING NOARP MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:129399 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:0 (0.0 b) TX bytes:10070823 (9.6 MiB)

xenbr0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF

inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link

UP BROADCAST RUNNING NOARP MTU:1500 Metric:1

RX packets:129317 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:8254239 (7.8 MiB) TX bytes:0 (0.0 b)

Page 17: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

xen-tools

● apt­get install xen­toolsxen­tools is a collection of simple perl scripts which allow you 

to easily create new guest Xen domains upon your Debian GNU/Linux host (now CentOS4)

Once installed and configured you can create a new Xen instance in a matter of minutes. Each new Xen domain will be complete with

    * All networking details setup, with either multiple static IP addresses or DHCP.

    * An installation of OpenSSH.

    * An arbitary set of partitions

Your new instance will be completed by having the user accounts from your guest system copied over, and you may optionally boot the image as soon as it has been created

Page 18: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Grub

Grub già configurato:

● cat /boot/grub/menu.lsttitle           Xen 3.0.3­1­i386­pae / Debian GNU/Linux, kernel 2.6.18­5­xen­686

root            (hd0,0)

kernel          /xen­3.0.3­1­i386­pae.gz

module          /vmlinuz­2.6.18­5­xen­686 root=/dev/sda3 ro console=tty0

module          /initrd.img­2.6.18­5­xen­686

title           Xen 3.0.3­1­i386­pae / Debian GNU/Linux, kernel 2.6.18­5­xen­vserver­686

root            (hd0,0)

kernel          /xen­3.0.3­1­i386­pae.gz

module          /vmlinuz­2.6.18­5­xen­vserver­686 root=/dev/sda3 ro console=tty0

module          /initrd.img­2.6.18­5­xen­vserver­686

Page 19: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

lista pacchetti relativi a xendpkg ­l | grep xen

libc6­xen                                

linux­image­2.6.18­5­xen­686             

linux­image­2.6.18­5­xen­vserver­686     

linux­modules­2.6.18­5­xen­686           

linux­modules­2.6.18­5­xen­vserver­686   

xen­hypervisor­3.0.3­1­i386­pae          

xen­linux­system­2.6.18­5­xen­686        

xen­linux­system­2.6.18­5­xen­vserver­686

xen­tools                                

xen­utils­3.0.3­1                        

xen­utils­common             

Page 20: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Welcome to Xen Server# uname ­a

Linux xen 2.6.18­5­xen­686#

      __==|=__.

   .=||++=|%Iii|_.

  |||+  inoXoovi||.    WELCOME   TO   XENSERVER

 |+|=  <2X##ZAzui|.

:||+;   3XZ#ZXovi|+|  

=|+|=    "122nvi||+|

 ||+|;     ­­+|||+|=

 :||+||_        ­­+

  ­=|+||=_.

    ­­+||||=,          

         ­­­

Page 21: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

File di configurazione Xen

/etc/xen/xend-config.sxp

Page 22: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Network script

(network-script network-bridge)

(vif-script vif-bridge)

è possibile sostituire il network-bridge di default con un proprio da creare su misura per le proprie esigenze modificando "/etc/xen/xend-config.sxp":

# (network-script network-bridge)

(network-script my-network-bridge)

(vif-script vif-bridge)

Page 23: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

My network script

cat /etc/xen/scripts/my­network­bridge

  #!/bin/bash

  dir=$(dirname "$0")

  "$dir/network­bridge" "$@" vifnum=0 netdev=eth0 bridge=xenbr0

  "$dir/network­bridge" "$@" vifnum=1 netdev=eth1 bridge=xenbr1

  "$dir/network­bridge" "$@" vifnum=2 netdev=eth2 bridge=xenbr2

  "$dir/network­bridge" "$@" vifnum=3 netdev=eth3 bridge=xenbr3

Page 24: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

xen-tools -> domU

cat /etc/xen-tools/xen-tools.conf

dir=/var/vmdebootstrap = 1size = 3Gbmemory = 1024Mbswap = 1024Mb fs = ext3dist = etch #(sarge, etch, sid)image = full # (or sparse)gateway = 192.168.0.254netmask = 255.255.255.0dhcp = 1 passwd = 1 #accounts = 1 #user e le password Dom0 -> DomUkernel = /boot/vmlinuz-2.6.18-5-xen-vserver-686initrd = /boot/initrd.img-2.6.18-5-xen-vserver-686mirror = http://mi.mirror.garr.it/mirrors/debian/

Page 25: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Creazione dom0

# xen­create­image –­hostname=nomeimmagine

..

...

....

......caffè :)

Page 26: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

cat /etc/xen/nomeimmagine.cfg#  Configuration file for the Xen instance, created on# Thu Aug  2 16:44:50 2007.##  Kernel + memory sizekernel  = '/boot/vmlinuz­2.6.18­5­xen­vserver­686'ramdisk = '/boot/initrd.img­2.6.18­5­xen­vserver­686'memory  = '2048'

#  Disk device(s).root    = '/dev/sda1 ro'disk    = [ 'file:/mnt/vm/domains/nomeimmagine/disk.img,sda1,w', 'file:/mnt/vm/domains/nomeimmagine/swap.img,sda2,w','phy:/dev/mapper/mpath0,sdb1,w']

#  Hostnamename    = 'nomeimmagine'

#  Networking#vif = [ 'mac=00:16:3e:7f:20:00,bridge=xenbr1' ] # dmzvif = [ 'mac=00:16:3e:7f:20:00,bridge=xenbr3' ] # temp lan

#  Behaviouron_poweroff = 'destroy'on_reboot   = 'restart'on_crash    = 'restart'

Page 27: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Nota: Metodi di installazione

Attualmente sono supportate le seguenti metodologie di installazione1.  ­­debootstrap = Install the system using the deboostrap command.2.  ­­rpmstrap = Install the system using the rpmstrap command.3.  ­­copy /path = Install by copying the specified directory recursively.4.  ­­tar file.tar = Install by untarring the given file. La prima opzione permette di installare Debian/UbuntuDebian/Ubuntu, la seconda Fedora e CentOS, con la terza si può installare un sistema recuperando il filesystem da una directory preesistente, in pratica copiando i file ed il quarto consente di recuperare il filesystem da un archivio tar, che viene estratto ed utilizzato per la costruzione del sistema. Questo metodo può essere molto utile per costruire rapidamente sistemi partendo da immagini già salvate.

Page 28: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Xen performance improve

disabilitare le librerie tls, altrimenti xen avrà un degrado prestazionale elevato.

● Per disabilitarle:● #mv /lib/tls /lib/tls.disable

● Per riabilitarle se necessario:● #mv /lib/tls.disabled /lib/tls 

Page 29: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

avviamo dom0

# xm create /etc/xen/nomeimmagine.cfg ­c

Page 30: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Il comando "xm"

Il comando "xm" permette di effettuare alcune operazioni sulle macchine virtuali e di controllarne lo stato.

xm list mostra la lista delle macchine virtuali attive.

xm reboot forza il riavvio di una macchina virtuale.

xm shutdown forza lo shutdown di una macchina virtuale.

xm destroy distrugge istantaneamente una macchina virtuale.

xentop consente di avere l'equivalente del comando top per le macchine virtuali in esecuzione.

Page 31: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

xen-shellXen-shell fornisce una interfaccia Shell “customizzata” per l'utilizzo di Xen, tramite la quale gli utenti possono connettersi al sistema host (dom0) e controllare “solamente” la propria macchina virtuale (domU).

Page 32: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

xen-shellfonte: http://www.xen-tools.org/software/xen-shell/

The Xen shell is a simple console application which allows you to easily allow a user to control multiple Xen instances, without the overhead of a web-based control panel.

Using this shell users may: * Boot/Shutdown their Xen guest. * Reboot their Xen guest. * Connect to the serial console of their runing Xen guest. * Reimage their system to a pristine state, via xen-tools. * Manipulate their reverse DNS information * Change their login password.

The shell features command history, command completion, and integrated help.

It is ideal for a hosting company which wishes to offer Xen-based "virtual machine" to clients. By using the xen-shell clients can maintain their own instance, without needing to ask for support staff to reboot/shutdown, or otherwise maintain the runnings system.

Security is improved since the client cannot gain access to the host system, and can only control their instance, and not those belonging to other clients.

Page 33: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

commandi disponibili tramite xen-shell:

●boot/reboot/shutdown

●console / serial

●exit / quit

●help

●passwd

●reimage

●status - "running/booted", or "shutdown"

●uptime

●version

Page 34: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

A chi piaccionio le GUI...

Page 35: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Argo - Xen Control Panel● Argo è un framework, semplice e scalabile per

la gestione delle istanze multiple di Xen.

● Il sistema di monitoraggio è composta da:

● Un network server (demone porta 20203)

● Un numero di client scritti in php, perl, dialog, ecc..

Page 36: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Argo – perl + gtk client

Page 37: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Argo – php guiun client scritto in PHP, necessita di un server web (apache) con modulo php.

Page 38: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Argo - php gui

Page 39: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Argo – dialog client

Page 40: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Argos - controllo distribuito

(fase di sviluppo)

● Argos è un nuovo progetto per la gestione ed il controllo distribuito di diversi Xen host.

● Permette il controllo delle singole istanza di Xen che girano su un numero arbitrario di Xen host.

● Su ogni Xen host (nodo) gira un'applicazione client che comunica con server centrale.

● Attraverso un pannello di controllo viene contattato il server centrale per la gestione remota dei singoli Xen guest (dom0)

Page 41: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Argos

Page 42: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Enomalism● The Enomalism Virtualized Management

Dashboard (VMD) is a powerful web-based virtual server manager. Designed to answer the complexity of managing globally disperse virtual server environments. Enomalism helps to ease the transition to a virtualized environment by reducing an IT organizations overall workload. The easy to use dashboard can help with issues including deployment planning, load balancing, automatic VM migration, configuration management, and capacity diagnosis.

Page 43: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Enomalism (Beta)

● Enomalism è un nuovo tool “web based” (user friendly ed integrabile con altri tool come Nagios), ancora non rilasciato al pubblico, che consente di avere una management console grafica per amministrare Xen e le macchine virtuali create.

Page 44: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Enomalism (Beta)

Page 45: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

XenMan

Nuovo tool per la gestione attraverso interfaccia grafica di Xen, scritto in Python sotto licenza GPL.Vuole essere, nelle intenzioni degli sviluppatori, un aiuto per chi amministra Xen ma anche per chi si avvicina da neofita a questa tecnologia per la virtualizzazione di sistemi operativi.possibilità di creare con pochi clic un dominio guestI cambiamenti nella versione 0.4: supporto LVM, miglioramenti all’interfaccia utente e nella stabilità complessiva, numerosi bugfix.

Page 46: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

XenMan Menù

Page 47: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

XenMan configurazione

Page 48: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

XenMan - status, performance, ecc..

Page 49: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Buona Virtualizzazione!

Queste slides sono state realizzate da Claudio Cardinali per il Gnu Linux User Group di Perugia in occasione della manifestazione Linux day 2007 e sono soggette alla licenza Creative Commons nella versione Attribution-ShareAlike 2.5; possono pertanto essere distribuite liberamente ed altrettanto liberamente modificate, a patto che se ne citi l’autore e la provenienza.

Grazie !

Claudio [email protected]

Page 50: Virtualizzazione con Gnu/Linux e Xen

- - @ .Xen alla Debian Way Claudio Cardinali claudio csolution itCSOLUTION.IT

Ringraziamenti

Grazie per la partecipazione!

Claudio Cardinali

[email protected]