OSDVT: thin client a portata di Open Source

Requisiti:

- CentOS release 6.3 (Final)

- epel-release-6-8.noarch.rpm

PARTE 1: INSTALLAZIONE SERVER
_____________________________

Procedura:

Dopo aver installato CentOS, molto semplice con la versione 6.3 ad interfaccia grafica, si procede con la configurazione della rete.
Prima di tutto servono alcuni pacchetti fondamentali.
Quidi lanciare:

[root@osdtv]# yum update

E poi:

[root@osdtv]# yum install wget
[root@osdtv]# wget http://mirrors.nl.eu.kernel.org/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@osdtv]# rpm -i epel-release-6-8.noarch.rpm
[root@osdtv]# yum update

Poi installiamo i pacchetti fondamentali:

[root@osdtv]# yum install qemu-kvm qemu-img spice-server mysql-server MySQL-python python-ldap bridge-utils tunctl Django httpd mod_ssl mod_python

La prima cosa da fare è creare un bridge che contenga la nostra ethernet principale(per questo servono le bridge-utils)
Per cui va editato il file /etc/sysconfig/network-scripts/ifcfg-eth0 (dove ethX è l’interfaccia di rete da utilizzare) nel seguente modo:

############
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
############

Fatto questo si crea il file del bridge:

[root@osdtv]# vim /etc/sysconfig/network-scripts/ifcfg-br0

Al suo interno:

###############
DEVICE=br0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Bridge
NAME=”bridge”
###############

Riavviamo i servizi di rete:

[root@osdtv]# service network restart

Se si possiede un firewall bisogna tenere conto del fatto che il Client di OSDVT utilizza la porta 6970 inoltre Spice/VNC per la visualizzazione hanno bisogno di avere aperte le porte che vanno da 5900 a 5999.
Andiamo per ora a disabilitare il firewall lato server buttando giù iptables.

[root@osdtv]# service iptables stop
[root@osdtv]# chkconfig iptables off

Facciamo partire invece il servizio MySQL

[root@osdtv]# service mysqld start

Passiamo a definire l’utente di root di MySQL e abilitiamo il servizio all’avvio del pc:

[root@osdtv]# mysqladmin -u root password ‘osdvt’
[root@osdtv]# chkconfig mysqld on

Creiamo il database per OSDVT

[root@osdtv]# mysql –user=root –password=osdvt -e “create database db_osdvt”

Adesso abbiamo tutto il necessario per installare il server.

[root@osdtv]# cd /usr/local/
[root@osdtv]# wget https://github.com/downloads/dodopahim/osdvt/osdvt-server-0.4.tar.gz
[root@osdtv]# tar xvfz osdvt-server-0.4.tar.gz

Copiamo i settaggi di Django e sincronizziamo i DB:

[root@osdtv]# cp /usr/local/osdvt/server/packaging/rhel63/django-settings.py /usr/local/osdvt/osdvtweb/settings.py
[root@osdtv]# cd /usr/local/osdvt/osdvtweb/
[root@osdtv]# python manage.py syncdb

Copiamo il file di esecuzione del server OSDVT e avviamolo all’avvio:

[root@osdtv]# cp /usr/local/osdvt/server/packaging/rhel63/sysv-osdvtd /etc/init.d/
[root@osdtv]# chkconfig osdvtd on

Facciamo partire il server e verifichiamo che gli sia stato assegnato un PID:

[root@osdtv]# service osdvtd start
Running… PID: 12345

Configuriamo il virtualhost di httpd con i settaggi di default di OSDVT(poi possono essere modificati facilmente):

[root@osdtv]# cp /usr/local/osdvt/server/packaging/rhel63/httpd-osdvt.conf /etc/httpd/conf.d/

Riavviamo il servizio e settiamolo per partire all’avvio:

[root@osdtv]# service httpd restart
[root@osdtv]# chkconfig httpd on

Proviamo l’accesso al server tramite browser all’indirizzo: https://myserver/osdvtweb/admin

Creiamo adesso l’ambiente per l’installazione di una macchina virtuale:

[root@osdtv]# mkdir /var/vms
[root@osdtv]# mkdir /var/iso

Creiamo il disco virtuale:

[root@osdtv]# qemu-img create -f qcow2 vm01.img 20G

Creiamo una ISO di xp da un cd(nel mio caso il cd è sr0):

[root@osdtv]# dd if=/dev/sr0 of=/var/iso/winxp.iso

Il resto della configurazione può essere fatto in maniera agile da Interfaccia Web.

PARTE 2: INSTALLAZIONE CLIENT
_____________________________

Diamo tutti i privilegi a spice editando il file /etc/sudoers:

#########################################################
myuser  ALL=NOPASSWD:  /usr/bin/spicy,/sbin/shutdown
#########################################################

Si consiglia di utilizzare la stessa distribuzione utilizzata per il server pure per le macchine che faranno da client, siano esse semplici pc o thin client. E’ consigliabile inoltre installare una distribuzione di tipo Red Hat / CentOS per il server, mentre il client con un po’ di passaggi e tanta buona volontà si può fare girare anche su debian(vedi la mia Ubuntu 12.10)

Procediamo con l’installazione dei pacchetti fondamentali per il client:

[root@osdtv_client]# yum install wget
[root@osdtv_client]# wget http://mirrors.nl.eu.kernel.org/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@osdtv_client]# rpm -i epel-release-6-8.noarch.rpm
[root@osdtv_client]# yum update
[root@osdtv_client]# yum install spice-gtk-tools python-dialog vinagre

Andiamo ad installare il client vero e proprio:

[root@osdtv_client]# wget https://github.com/downloads/dodopahim/osdvt-client/osdvt-clients-0.4.tar.gz
[root@osdtv_client]# tar xvfz osdvt-clients-0.4.tar.gz

Avviamo il client:
[root@osdtv_client]# python osdvt/osdvt-client.py

Inseriamo un utente creato in fase di creazione della vm e una password qualunque(di base LDAP è disabilitato ma è possibile implementare anche le funzioni di certificazione e autenticazione) e sopratutto l’indirizzo del server e premiamo su Connect.
Fatto questo possiamo collegarci alle vm create!

Attenzione, sui client Debian la procedura è più complessa, bisogna modificare il file osdvt-client.py correggendo i percorsi sia della CACERT che di GLADE

Un ringraziamento a fine del tutorial va ai miei colleghi a TLCWEB, al mio amico Frank e all’ideatore del progetto Amador Pahim

About Paolo Daniele