Feb
18
2012
daniele
Per creare una nuova macchina virtuale con KVM il consiglio è quello di utilizzare l’infrastruttura libvirtd e l’utilissimo virt-install.
Con Fedora è sufficiente il comando yum per installare entrambi:
yum install libvirt python-virtinst
Un esempio per installare Scientific Linux 6 (clone di RHEL 6) direttamente da un mirror (in questo caso il GARR):
virt-install -n sl6 -r 1024 --disk /var/lib/libvirt/images/sl6.qcow2,size=20,format=qcow2 --vcpus=1 --os-type linux --os-variant=rhel6 --network bridge=br0 --vnc --location='http://rm.mirror.garr.it/mirrors/scientific/6/x86_64/os/' --vnclisten=192.168.1.254
E’ possibile anche effettuare l’installazione testuale senza utilizzare VNC grazie al comando console di virsh
virt-install -n sl6 -r 1024 --disk /var/lib/libvirt/images/sl6.qcow2,size=20,format=qcow2 --vcpus=1 --os-type linux --os-variant=rhel6 --network bridge=br0 --location='http://rm.mirror.garr.it/mirrors/scientific/6/x86_64/os/' --extra-args 'console=ttyS0,115200'
virsh console sl6
Aggiornamento: per installare Fedora 16 e successive in modalità console seriale è necessario specificare alcuni parametri extra da passare a –extra-args. Essi sono serial text.
virt-install -n f16-server -r 1024 --disk /var/lib/libvirt/images/f16_server.qcow2,size=40,format=qcow2 --vcpus=2 --os-type linux --os-variant=fedora16 --network bridge=br0 --location='http://mirror1.mirror.garr.it/mirrors/fedora/linux/releases/16/Fedora/x86_64/os/' --extra-args 'console=ttyS0,115200 serial text'
virsh console f16-server
no comments | tags: kvm, libvirt, lighttpd, linux, server, software, virtualization | posted in MicroServer
Jan
21
2012
daniele
Supponendo di voler creare un volume LVM nel disco sdd per prima cosa inizializziamo lo spazio
pvcreate initializes PhysicalVolume for later use by the Logi‐
cal Volume Manager (LVM). Each PhysicalVolume can be a disk
partition, whole disk, meta device, or loopback file.
Successivamente creiamo il gruppo di volumi. Come estenzione fisica del volume (non quella virtuale che poi sarà quella realemente disponibile) è suggerito un valore di 32MB
vgcreate -s 32M backup /dev/sdd
vgcreate creates a new volume group called VolumeGroupName
using the block special device PhysicalDevicePath.
Infine creiamo il volume logico vero e proprio assegnadogli una dimensione e un nome. Tale dimensione potrà venire estesa successivamente con lvextend.
lvcreate -L200G -nhomebk backup
lvcreate creates a new logical volume in a volume group ( see
vgcreate(8), vgchange(8) ) by allocating logical extents from
the free physical extent pool of that volume group.
A questo punto il nuovo volume sarà disponibile come device attraverso il path /dev/gruppo/nomevolume pronto per poter essere formattato.
Ricordo che LVM può essere creato anche all’interno di una partizione o di un’immagine disco.
Riferimenti
- man pvcreate
- man vgcreate
- man lvcreate
no comments | tags: disk, libvirt, lvm, raid, software, virtualization, vm | posted in MicroServer
Jan
21
2012
daniele
Per montare un immagine RAW oppure una partizione e/o LV contenente una VM o un insieme di partizioni è sufficiente avere installato kpartx
A questo punto è possibile sfruttare /dev/mapper per mappare le partizioni del volume
kpartx -av /path/to/file_or_lv
le partizioni compariranno sotto forma di devices
ls /dev/mapper/
file_or_lv1
file_or_lv2
file_or_lvN
a questo punto è possibile montare ogni singola partizione come consueto
mount /dev/mapper/file_or_lv1 /mn/ext
per rimuovere la mappatura è sufficiente eseguire
kpartx -d /path/to/file_or_lv
no comments | tags: disk, kvm, libvirt, linux, software, virtualization, vm | posted in MicroServer
Jul
21
2011
daniele
Attenzione! Il post non è più aggiornato poiché il bug è stato risolto nella release 3.4.10 di apcupsd.
3.14.10 -- 13 September 2011 (Maintenance Release)
BUG FIXES
* Fix missing status and spurrious incorrect status on newer BackUPS CS
models using USB interface.
[...]
APCUPSD è un comodissimo software per chi possiede un UPS della APC.
Esso permette di monitorare lo stato dell’UPS, inviare alert e email in caso di blackout, avviare lo spegnimento dei server collegati a seguito di un blackout prolungato, ecc…
Dall’ultima versione, la 3.14.8, è stato introdotto un bug che si viene a verificare nel caso di utilizzo del software in abbinamento ad un UPS APC BackUp CS collegato tramite USB: ogni qualvolta che il demone effettua il polling dell’unità viene generato un errore di controllo nel subsystem USB
[...]
USB disconnect, address 6
usb 3-2: ctrl urb status -62 received
[...]
causando tra l’altro la disconnessione e riconnessione della periferica HID (viene vista dal kernel come una HID). Continue reading
no comments | tags: apc, hardware, HP MicroServer, linux, monitoring, server, software | posted in MicroServer, Other stuff
May
30
2011
daniele
MicroServer, il mio home-server che eroga i servizi web, è connesso alla WAN attraverso una line ADSL. Questa tecnologia, assimetrica, comporta velocità di upload abbastanza limitate (384 Kbit/s nel caso in esame): negli ultimi tempi, con un uso intenso di css e js (che arrivano anche a 200KB) nelle applicazioni web, questa limitazione è diventata ancora più evidente.
Per ovviare è possibile utilizzare la compressione trasparente delle pagine (ma non solo) lato webserver; a patto che il browser supporti la decompressione “on-the-fly” (ormai qualsiasi browser degno di tal nome la supporta) è possibile ridurre notevolmente la banda necessaria. Lo scotto è la necessità di un po’ più di potenza di calcolo, ma d’altro canto mai nel passato abbiamo avuto a disposizione tanta potenza a buon mercato.
Per attivare la compressione dei contenuti statici attraverso lighttpd è sufficiente abilitare il supporto e definire quali MIME comprimere (principalmente quelli testuali):
creiamo il file compress.conf in /etc/lighttpd/conf.d
server.modules += ( "mod_compress" )
compress.allowed-encodings = ("bzip2", "gzip", "deflate")
compress.filetype = ("text/plain", "text/html", "text/javascript", "text/css", "text/xml")
Per attivare la compressione dei contenuti dinamici generati dall’interprete php è sufficiente attivare il supporto a zlib nel file php.ini
zlib.output_compression = On
Al termine riavviamo i servizi
bash$ service lighttpd restart
Riferimenti:
http://redmine.lighttpd.net/projects/lighttpd/wiki#Documentation
no comments | tags: lighttpd, server, software, web | posted in MicroServer
May
4
2011
daniele

Il 6 aprile 2011 è (finalmente?) uscito Gnome 3: l’idea di desktop è stata in buona parte rivoluzionata; devo dire che tuttavia sul netbook non è così male la nuova impostazione.

La prima impressione che ho avuto con Gnome 3 è stata l’impossibilità di accedere a molte impostazioni per personalizzare almeno un poco il comportamento del desktop: infatti il pannello di controllo, almeno attualmente, molto limitante nella configurazione.
Tuttavia esistono due tool, a mio dire indispensabili, che permetto di aggirare parzialmente questo limite.
Essi sono:
gnome-tweak-tool

E’ una gui molto semplice per abilitare e/o modificare alcuni comportamenti e caratteristiche di base.
dconf-editor

Sostituisce il vecchio gconf-editor e permette una gestione più completa e raffinata delle impostazioni.
Per installarli, su Fedora 15 (beta), è sufficiente usare yum
yum install -y dconf-editor gnome-tweak-tool
Personalmente ho fatto le seguenti modifiche
- Attivata la data a fianco dell’orologio
- Attivato il pulsante di minimizzazione delle finestre
- Attivato il pulsante “power-off” nel menu utente (tramite il pacchetto gnome-shell-extensions-alternative-status-menu)
no comments | tags: gnome, linux, software | posted in Mini
Apr
24
2011
daniele
Oramai è prassi diffusa l’utilizzo di un front controller nelle applicazioni web. Per implementarlo correttamente è necessario che il web server effettui delle rewrite dell’URL.
Se si utilizza Apache non è un grosso problema poiché quasi tutti i software che richiedono l’esecuzione di una o più rewrite contengono il file .htaccess pronto all’uso.
Per nginx c’è l’utilissima funzione try_files
try_files $uri $uri/ /index.php?url=$uri;
Per lighttpd? E’ possibile implementare anche in lighttpd una funzione simile alla try_files di nginx tramite una rewrite
url.rewrite-once = ( "^/(.*)\.(.*)" => "$0", "^/([^.]+)$" => "/index.php?url=$1" )
Questa regola, alla pari di try_files, verifica che la risorsa richiesta esista: nel caso di esito positivo non avviene la rewrite, mentre se non esiste l’uri viene passata al front controller.
Per poterla utilizzare il modulo mod_rewrite deve essere caricato
server.modules += ( "mod_rewrite" )
no comments | tags: lighttpd, nginx, server, software | posted in MicroServer
Apr
10
2011
daniele
Per installare Firefox 4 su Fedora 14 utilizzando i pacchetti RPM è sufficiente aggiungere il seguente repository:
[fedora-firefox4]
name=Firefox 4 Web Browser
baseurl=http://repos.fedorapeople.org/repos/spot/firefox4/fedora-$releasever/$basearch/
enabled=1
gpgcheck=0
salvandolo in un file .repo in /etc/yum.repos.d/ (es. fedora-firefox4.repo).
A questo punto sarà sufficiente un
L’installazione avverrà parallelamente a Firefox 3. Per rimuove Firefox 3.6 eseguire il comando
yum erase --remove-leaves firefox
Il flag –remove-leaves funziona solo se si ha installato il plugin per yum remove-with-leaves che consiglio:
yum install yum-plugin-remove-with-leaves
Yum plugin to remove dependencies which are no longer used because of a removal
no comments | tags: software | posted in Mini, Other stuff
Apr
7
2011
daniele
A volte può capitare la necessità di effettuare tunneling verso un altra rete, vuoi per la necessità di accedere alla rete stessa, vuoi per poter fare da ponte e utilizzare un altro gateway verso il web.
Il primo caso può essere utile ad esempio per accedere a un host in una rete locale non raggiungibile attraverso il NAT, che è quello che a me spesso capita.
Le soluzioni più eleganti e raffinate prevedono l’utilizzo di VPN, ma c’è una soluzione ancora più semplice. Avendo una macchina all’interno della rete a cui ci si vuole collegare ed avendo installato SSH raggiungibile dall’esterno è possibile utilizzare il tunneling (criptato) tramite il forwarding SOCKS5 con un semplice comando:
ssh -C2qTnN -D 8080 username@remotehost
Questo comando va eseguito sulla macchina locale (deve anche qui essere installato SSH). Per Windows è possibile utilizzare putty. Esso creerà una connessione SSH verso remotehost senza shell e rimarrà in ascolto sulla porta locale 8080. Si presume che la porta remota sia la 22, se così non fosse è possibile specificare con il flag -p la porta di SSH sull’host remoto.
E’ possibile attivare il farwarding e una shell remota contemporaneamente; per farlo vanno tolti i flag -T -n e -N.
Ora che il tunnel è creato è possibile attivare l’accesso ad esso: per i browser è sufficiente andare nella configurazione proxy ed attivare il proxy attraverso SOCKS5: i parametri saranno localhost come host e 8080 la porta (o quella definita dal parametro -D). Inserendo un indirizzo della rete locale a cui si è connessi in tunnel sarà possibile accedere ad esso.
Per le applicazioni che non supportano SOCKS, o per cui non esiste una gui apposita di configurazione, esiste in Linux un comodissimo wrapper: tsocks.
Per prima cosa bisogna provvedere ad installarlo: su Fedora è sufficiente un
per poi creare il file di configurazione /etc/tsocks.conf così impostato
server = localhost
server_port = 8080
server_type = 5
local = 127.0.0.0/255.0.0.0
infine per l’utilizzo sarà sufficiente dare da shell il comando
(è possibile anche creare una nuova shell con attivo di default il wrapper eseguendo il solo comando tsocks).
Per verificare se è attivo il wrapping delle connessioni il comando
deve restituire
declare -x LD_PRELOAD="libtsocks.so"
Per terminare il forwarding sarà sufficiente chiudere il processo ssh (con ctrl-c nel caso non sia stato allocato un tty).
Riferimenti
no comments | tags: linux, proxy, server, software, ssh | posted in MicroServer, Mini, Other stuff
Mar
24
2011
daniele
Ecco una semplice e veloce configurazione di lighttpd per l’esecuzione di awstats:
server.modules += ( "mod_cgi", "mod_alias" )
$HTTP["host"] =~ "awstats.mydomain.tld" {
alias.url += (
"/awstats/" => "/usr/share/awstats/wwwroot/cgi-bin/",
"/awstatsicons/" => "/usr/share/awstats/wwwroot/icon/",
)
cgi.assign = (
".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl"
)
server.document-root = "/usr/share/awstats/wwwroot/"
}
La configurazione è consigliato salvarla in un file .conf (es. awstats.conf) in /etc/lighttpd/conf.d/ in modo da rendere la configurazione il più modulare possibile.
no comments | tags: lighttpd, server, software | posted in MicroServer