Breve howto sull’installazione di Linux-VServer e FreeNX server su un host virtuale
Breve howto sull’installazione di Linux-VServer e FreeNX server su un host virtuale
Introduzione
Trovandomi con un server debian sarge abbastanza potente (doppio dual core xeon da 2.8GHz e 4 GB di ram) intento a rigirarsi i pollici tra un autenticazione samba e qualche select in postgres, ed una branca di pessimi client Windows XP (30) lasciati allo sbando amministrativo (aiuto, mi hanno cancellato un icona, non vedo più la connessione, ecc.), ho ben pensato che sarebbe carino fa girare delle sessioni linux in terminale grafico per ottenere principalmente il seguente obiettivo: quando l’utente si lamenta, se il servizio funziona da terminale linux significa che funziona, e che il problema è in Windows XP (e quindi non è un problema mio…).
Il Kernel
Poiché sarà necessario patchare il kernel per VServer (http://www.linux-vserver.org), un buon inizio è avere dei sorgenti ed una configurazione funzionante per la nostra macchina. Io ho optato per gli ultimi sorgenti Vanilla, e relativa patch:
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.15.tar.gz
wget http://vserver.13thfloor.at/Experimental/patch-2.6.15-vs2.0.1.2.diff
Scompattati i sorgenti, e applicata la patch al solito modo (cat patch-2.6.15-vs2.0.1.2.diff | patch -p1), si può passare alla configurazione del kernel. Si supone che si sia in grado di configurare il kernel affinché funzioni senza patch (io ho dovuto penare con il modulo per il raid hardware, che mi saliva sono in initrd, ma questi son oproblemi personali… 😛 ). Per quanto riguarda la configurazione della nuova voce “Linux VServer”, è utile, rispetto al default, attivare l’Hard CPU limitre che ospiti troppo ingordi si mangino le risorse CPU della macchina:
[ ] Show a Legacy Version ID
[ ] Disable Legacy Networking Kernel API
[*] Enable Proc Security
[*] Enable Hard CPU Limits
[ ] Limit the IDLE task
Persistent Inode Context Tagging (UID24/GID24) --->
[ ] Tag NFSD User Auth and Files
[ ] VServer Debugging Code
Per compilare il kernel procediamo alla solita maniera:
make-kpkg --append-to-version -vs2 --revision=1 kernel_image
Riavviamo linux con il nuovo kernel constatando che funziona tutto, e scarichiamo un paio di strumenti utili per vserver:
apt-get install util-vserver
apt-get install vserver-debiantools
Configurazione di VServer
Per prima cosa dobbiamo creare un nuovo VServer andando a scaricare con debootstrap una sarge nuova con cui popolarlo.:
vserver lt build -n lt --hostname lt.miodominio.it --interface eth0:192.168.0.2/24 \
-m debootstrap -- -d sarge -m http://debian.fastweb.it/debian/
Dopo qualche minuto (6-7 su una adsl “media”) il nostro ospite è pronto, e possiamo avviarlo ed entrarci. Prima però è necessaria una piccola modifica alla configurazione del demone ssh del server principale (root server). Con il parametro –interface eth0:192.168.0.2/24 ho infatti indicato che la scheda di rete virtuale del nuovo host ‘lt’ risponderà all’indirizzo 192.168.0.2 (nuovo rispetto gli indirizzi della eth0 del root server), e per evitare problemi configuriamo (in /etc/ssh/sshd_config) ListenAddress con i soli ip a cui sshd deve rispondere. Quest operazione ovviamente va ripetuta per ogni host con sshd configurato, ed è una filosofia da mutuare per ogni servizio di rete “concorrente” tra due host virtuali.
Avviamo quindi il nostro nuovo host, e entriamoci:
vserver lt start
vserver lt enter
La configurazione della nuova sarge non sarà a questo punto completa, ma potrà essere portata al temine utilizzando ‘base-config’. Probabilmente noteremo alcuni warning legati la locale, che possiamo sistemare con un ‘dpkg-reconfigure locales’.
Poiché il nostro obiettivo è di farci girare un server FreeNX, sicuramente abbiamo bisogno di un ambiente grafico. Ho scelto KDE, visto che FreeNX risulta più veloce (non abbiamo bisogno di kdm, poiché accediamo solo da FreeNX).:
apt-get install x-window-system
apt-get install kde-core
apt-get install kde-i18n-it
A questo punto andiamo a pescare il server di FreeNX dagli archivi per Debian. Le righe da aggiungere ad /et/apt/sources.list sono le seguenti:
deb http://debian.tu-bs.de/project/kanotix/stable/ stable-backports nx
deb-src http://debian.tu-bs.de/project/kanotix/stable/ stable-backports nx
I package in alcuni repository (ad esempio quelli per la ubuntu: http://seveas.ubuntulinux.nl/) richiedono un autenticazione tramite chiave gpg:
gpg --keyserver subkeys.pgp.net --recv-keys 1135D466
gpg --export --armor 1135D466 | sudo apt-key add -
Quindi:
apt-get update && apt-get install freenx
Il client FreeNX
Il client FreeNX si può liberamente scaricare da www.nomachine.com. L’installazione non richiede nulla di particolare. Al primo avvio è sufficiente configurare indirizzo ip del server e porta ssh (in genere 22, se non l’abbiamo modificata); a questo punto possiamo entrare con l’utente di sistema linux.
Se al momento della comparsa dello splash di KDE il client FreeNX esce bruscamente, basta cambiare il proprietario di un paio di file in /tmp dell’host:
chown root:root /tmp/.ICE-unix/
chown root:root /tmp/.X11-unix/
Come ci si può rendere conto leggendo .xsession-error dell’utente.
Installazione di ubuntu
Alternativa ad usare debian è la possibilità di installare ubuntu che è decisamente più orientata al desktop, per fare ciò è sufficiente installare il debootstrap di ubuntu che contiene lo script corretto per le distribuzioni di ubuntu e quindi creare la nuova istanza di vserver:
/usr/sbin/vserver linuxts build -m debootstrap --force --hostname linuxts \
--interface eth0:IPDELNUOVOSERVER -- -d breezy -m \
http://archive.ubuntu.com/ubuntu -- --verbose
una volta installata è possibile accedere alla nuova istanza:
vserver linuxts enter
ed installare il desktop:
apt-get install ubuntu-desktop
è da notare che per qualche motivo i device standard (mem, null ecc.. ) creati dall’intallazione sono in /dev.X/ invece che sotto /dev questo comporta che alcuni applicativi (tra cui gnome-session!) non partono, la soluzione più rapida è di linkarli nel posto giusto:
cd /dev
ln -s /dev.X/* .
Bene, ecco tutto.