martedì 23 febbraio 2010
Quake 3 su Solaris
mercoledì 17 febbraio 2010
lockNgo: libera memoria in un tot ;)
James Dickens ha postato questo codice sul suo blog, che locka una certa quantità di memoria e poi esce liberandola dopo essere stato in sleep per un ammontare di tempo predefinito (5 secondi) anche impostabile.
Es:
lockNgo -m 256 -s 5
frees 256 Mb e dorme 5 secondi.Funziona a meraviglia su osol 128 e 132 x86 e x64, stasera lo compilo su SPARC. Il link al suo post
/*
* Mlock memory to flush caches and create availible memory
* for Sun's VDI on undersized servers.
*
* Based on James Litchfield's blog entry on locking memory
* http://blogs.sun.com/thejel/entry/locking_memory
*/
!!!! UPDATE !!!!
Qui la nuova versione "intelligente"!
lunedì 15 febbraio 2010
Browsers War
lunedì 22 giugno 2009
Quale Virtualbox?Lla versione brandizzata, of course
Lo trovo nella repository Debian come Virtualbox-OSE, la versione pura e opensource, amica di Dio e conforme ai dettami open e alle linee guida source ... tutto molto bello ... peccato che la mia virtual machine con 16 dischi non ci può bootare!! Infatti, dopo 10000 tentativi di bootare una virtualmachine preconfezionata da Sun, scopro che i controllers aggiuntivi (non l'IDE a due canali di default con i suoi 4 devices massimi), siano essi SATA o SCSI Lsi o BusLogic, non sono supportati. Sono attivabili ma al boot un errore blocca tutto. La cosa naturalmente è non/maldocumentata in puro stile Linux.
Allora, visto che c'è, ripiego sulla versione Black-Voodoo del software di virtualizzazione, brandizzato Sun: Sun Virtualbox.
Identico, versione 2.2.4, ma con controllers aggiuntivi funzionanti ... evviva!
Tralasciando il fatto che da qualche parte ho letto che è uscita la versione 3.0 di Virtualbox ma da nessuna parte ne trovo menzione sui siti Sun e virtualbox.org, booto felice la mia Vmachine con tutti i suo dischi sata. Da ricordare in futuro...
mercoledì 10 giugno 2009
Sun Studio e GCC
John Henning and Karsten Guthridge rispondono qui:
link
Questo era un vecchio post di giugno che pubblico ora.
venerdì 10 aprile 2009
giovedì 20 novembre 2008
Apache su Veritas Cluster Server
Il setup ideale riguarda un Service Group presente su due nodi e composto di tre risorse:
- IP
- Apache
- Zpool
# zpool create -f zdata c1t13d0s3Montare il dataset e compilare apache scaricato preventivamente da httpd.apache.org, qualcosa tipo:
# zpool attach -f zdata c1t13d0s2 c1t14d0s2
# zfs create /zdata/www
# zfs set mountpoint=/data/www zdata/www
# zfs set quota=500M zdata/www
# ./configure -prefix=/data/wwwUna ritoccata al file httpd.conf e siamo a posto.
# make
# make install
Ora abbiamo ciò che va messo in HA e affidato a VCS. Per questo creeremo il Service Group "apache" e le risorse "apache_ip", "apache_www" e "apache_zpool".
# haconf -makerwIl container "apache":
# hagrp -add apacheLa risorsa "apache_ip" di tipo IP:
# hagrp -modify apache SystemList sunbox1 0 sunbox2 1
# hagrp -modify apache AutoStartList sunbox1 sunbox2
# hagrp -modify apache Parallel 0
# hares -add apache_ip IP apacheLa risorsa "apache_www", gli attributi qui settati sono d'esempio, sta al sysadmin di turno stabilire come sia meglio definirli a seconda del caso:
# hares -modify apache_ip Critical 1
# hares -modify apache_ip ArpDelay 1
# hares -modify apache_ip IfconfigTwice 0
# hares -modify apache_ip Device hme0
# hares -modify apache_ip Address 192.168.3.20
# hares -modify apache_ip NetMask 255.255.255.0
# hares -modify apache_ip Enabled 1
# hares -add apache_www Apache apacheE infine la risorsa "apache_zpool" per il failover del pool zfs:
# hares -modify apache_www Critical 1
# hares -modify apache_www ResLogLevel INFO
# hares -modify apache_www Port 80
# hares -modify apache_www SecondLevelMonitor 0
# hares -modify apache_www SecondLevelTimeout 30
# hares -modify apache_www EnableSSL 0
# hares -modify apache_www httpdDir /data/www/bin
# hares -modify apache_www EnvFile /data/www/bin/envvars
# hares -modify apache_www PidFile /data/www/logs/httpd.pid
# hares -modify apache_www HostName vcs_www
# hares -modify apache_www User webservd
# hares -modify apache_www ConfigFile /data/www/conf/httpd.conf
# hares -modify apache_www DirectiveAfter -delete -keys
# hares -modify apache_www DirectiveBefore -delete -keys
# hares -modify apache_www Enabled 1
# hares -add apache_zpool Zpool apachePer quanto riguarda le dipendenze tra le risorse l'ordine di partenza dovrebbe essere zpool/IP e poi la risorsa apache. VCS sembra gestire lo startup di default nell'ordine in cui le risorse sono inserite nel Service Group. Questo è fonte di guai, perciò esiste la gestione delle dipendenze, il linking ... e va anche usato. Per questo tornerà utile il comando hares -link:
# hares -modify apache_zpool Critical 1
# hares -modify apache_zpool ChkZFSMounts 1
# hares -modify apache_zpool PoolName zdata
# hares -modify apache_zpool Enabled 1
La sintassi chiede di specificare risorsa genitore e risorsa figlio
# hares -link apache_www apache_zpoolIn VCS i genitori son molto gentili (o comodi?), e aspettano che i figli si alzino prima di muoversi a loro volta. All'uscita escono per primi, e i figli vanno offline subito dopo. Questo è da tener conto nel setup delle dipendenze.
# hares -link apache_www apache_ip
Il resto fa parte della gestione abituale.
sabato 11 ottobre 2008
Blogger settings e migrazioni
Questo blog è pensato per me. Non ho mai inteso farne altro; ho comunque deciso di renderlo pubblico perchè possa
essere utile a chi cerca informazioni tecniche per risolvere un problema che io ho già visto e documentato qui.
C'è stato un problema, lo sfondo nero si mangiava il commento in quanto nel layout da cui son partito, il testo per i commenti
era il colore nero.
Sono quindi andato in Personalizza -> Layout -> Caratteri e colori, dove un editor WYSIWYG (che sta per What You See
Is What You Get) permette di cambiare parecchi elementi del layout. Sfortunatamente tra questi, il colore del testo dei commenti non c'era.
Quello che ho pensato è che probabilmente c'è un modo per inserire in questa pagina l'elemento, ma ho optato invece per un'altra strada.
Tra i sottomenù di Layout vi è Modifica HTML: qui è possibile modificare il layout direttamente mettendo mano al codice.
Ciò che cercavo è definito in:
.comment-body {
font-size:100%;
font-weight:normal;
color: black;
}
Com'è ovvio basta cambiare color: da black a white.
Fatto!
Una cosa che mi manca, qui su Blogger, è qualsiasi forma di controllo sul DB. Soprattutto per farmi i miei backup ... questo è stato fatto tra le altre cose, sicuramente anche per rendere ostico migrare il blog. Ogni tanto penso di hostarlo su un mio sistema, ma, appunto, spostare i blogs è quasi impossibile, e l'unica soluzione che mi viene in mente è di fare un copia e incolla dal testo visibile direttamente dal browser.
Altre soluzioni?
lunedì 6 ottobre 2008
LAOP: Php e Oracle su Linux
L'installazione di Oracle su Debian 32bit, e successivo patching alla 10.2.0.4 è stato abbastanza painless. Ho scelto Oracle Database Enterprise Edition, anzichè Oracle XE, per il quale sono forniti binari pacchettizati deb; più che altro per uniformità con la versione che mi ritrovo in ambienti di produzione al lavoro. Tempo fa, lo avevo installato su un HP con Gentoo 64bit e fu dura; questa volta invece tutto liscio.
E' stato sufficiente esportare il display e lanciare la GUI d'installazione con un unico parametro:
#./runInstaller -ignoreSysPrereqsQuesto permette di poter installare senza che venga eseguito il check di sistema operativo e versione; infatti, se non è tra gli OSes supportati, l'OUI (Oracle Universal Installer) esce e quitta.
Per il patching da 10.2.0.1 a 10.2.0.4 è sufficiente fare la stessa cosa descritta qui sopra. Naturalmente ho omesso alcuni passi di preparazione dell'installazione tra cui la creazione dell'utente e l'impostazione dell'ambiente.
Per Apache e Php basta il solito apt-get install. Dopodichè consiglio di verificare che tutto funzioni mettendo il file index.php in /var/www con i contenuti che seguono:
phpinfo():Manca solo interfacciare PHP a Oracle. Per questo mi son rifatto a una procedura veloce e pulita, descritta sul sito morse.nl
?>
In breve:
#apt-get install php5-dev php-pearIl secondo fornisce il comando pecl da usare per installare l'estensione Oracle oci8. E' sufficiente passargli la $ORACLE_HOME quando verrà richiesto il PATH dove risiede l'Instantclient. Quest'ultimo sarebbe da installare precedentemente ai pacchetti qui sopra, nel caso la parte server di Oracle risiedesse su un'altro sistema.
Una piccola modifica ancora
#echo "extension=oci8.so" >> /etc/php5/apache2/php.inie siamo a posto. Restartando Apache e accedendo di nuovo alla index.php creata prima, è possibile vedere i riferimenti all'estensione oci8.
Questa è una delle possibili configurazioni per poter utilizzare un db Oracle come backend per PHP. Per altre possibilità e un mucchio di informazioni utili in 195 pagine, ci si può rifare al pdf:
The Underground PHP and Oracle Manual
domenica 27 luglio 2008
Protocollo DNS e le sue debolezze
E' stato trovato un workaround e le patches sono arrivate in tempi brevi; come al solito mi chiedo chi tra coloro che sono a rischio si è occupato di patchare.
Noi l'abbiamo fatto (tra l'altro grazie a questo ho scoperto cose che ignoravo) e la falla, diciamo, è stata tappata alla buona. La soluzione finale è, comunque, passare a DNSSEC, che per come è stato pensato, non può soffrire del problema del fratello protocollo più anziano.
Parlandone con la mia compagna, che è entrata in tempi recenti nel mondo lavorativo IT, mi ha chiesto di spiegarle, con un esempio, il problema.
E allora le ho risposto, che se ho ben capito io stesso, può immaginare questo:
"Il tuo conto BancoPosta al quale accedi quando hai bisogno di effettuare operazioni, potrebbe essere un bersaglio. Il problema che un attaccante può sfruttare nei DNS è l'avvelenamento della cache. Il nome del sito che normalmente viene risolto a 62.241.4.82, viene cambiato a un'altro dove risiede una copia contraffatta dello stesso. La vittima non se ne accorge facilmente, inoltre le pagine fasulle, hanno links che puntano a url familiari e corrette, a differenza dei siti di pishing, dove ci si accorge della truffa verificando i links e notando che puntano a indirizzi estranei e non conformi alle pagine originali che vorremmo visitare.
Quindi è possibile che non ci si accorga della truffa, o che ci si riesca troppo tardi."
Con un pò di fantasia si può pensare ad altri attacchi, quindi la situazione è piuttosto tesa, e le continue raccomandazioni a patchare ne sono prova.
Inoltre è uscito l'exploit, cosicchè, chi non è in grado di fabbricarsene uno, può sfruttare questo. E' contenuto in Metasploit, un tool per penetration testing, IDS e simili.
Qui una descrizione della vulnerabilità: http://www.kb.cert.org/vuls/id/800113
E la pagina dell'ISC, curatori di BIND, contenente l'advisory:
YOU ARE ADVISED TO INSTALL EITHER THE PATCHES, STAYING WITHIN YOUR MAJOR VERSION, (9.5.0-P1, 9.4.2-P1, 9.3.5-P1) OR THE NEW BETA RELEASES (9.5.1b1, 9.4.3b2) IMMEDIATELY.
The patches will have a noticeable impact on the performance of BIND caching resolvers with query rates at or above 10,000 queries per second. The beta releases include optimized code that will reduce the impact in performance to non-significant levels.
Trovate il resto qui: http://www.isc.org/sw/bind/bind-security.phplunedì 25 febbraio 2008
Acrobat e Ubuntu
Ubuntu non ha acrobat reader nelle repositories, nemmeno in quelle meno restrittive.
E allora googlare "medibuntu" e la soluzione per averlo via apt-get e avere a disposizione le updates è a portata di mano ... assieme a tanto altro software non incluso per beghe legali nelle altre repos
venerdì 6 luglio 2007
Listare i contenuti di un pacchetto
qlist baselayout, fa proprio questo su Gentoo.
Su Solaris ricorro a un one-line script che si appoggia al comando pkgchk per ottenere lo stesso effetto:
#!/bin/sh
/usr/sbin/pkgchk -l $1|grep Pathname|cut -d: -f2|sed s/" "/""/|more
Voilà, chiamiamolo /usr/local/bin/pkgwhat e richiamiamolo:
-bash-3.00# pkginfo |grep anonymi
application CSWtor tor - anonymizes web browsing, instant messaging, IRC, SSH, and other applications using TCP
-bash-3.00# /usr/local/bin/pkgwhat CSWtor
/opt/csw/bin
/opt/csw/bin/tor
/opt/csw/bin/tor-resolve
/opt/csw/bin/torify
/opt/csw/etc
/opt/csw/etc/tor
/opt/csw/etc/tor/tor-tsocks.conf
/opt/csw/etc/tor/torrc.sample
/opt/csw/share
/opt/csw/share/man
/opt/csw/share/man/man1
/opt/csw/share/man/man1/tor-resolve.1
/opt/csw/share/man/man1/tor.1
/opt/csw/share/man/man1/torify.1
Ora sarebbe da integrare la ricerca del pacchetto tramite keyword e successiva visualizzazione dei contenuti, integrando pkginfo|grep
sabato 30 giugno 2007
Autoboot dei demoni di mrtg pme extension
Abbreviato, ciò di cui avevo bisogno in questo momento. Usavo Mrtg già tempo fa, e ne ho apprezzato le qualità nel monitoraggio di alcuni paratri via snmp sui Cisco.
Questa estensione, opportunamente modificata e adattata alle mie esigenze mi da la possibilità di sfruttare lo stupendo e familiare Mrtg per collezionare sottoforma di grafico l'utilizzo di cpu e memoria (per il momento) di alcune macchine.
In questo modo riesco a farmi un'idea del carico di lavoro durante la giornata e la settimana su diversi sistemi, per farmi un'idea dell'andazzo. So che mi sarà utile qual'ora incontrerò ancora problemi di "operazioni che mi siedono il 4800" (frase idiomatica che sharo col mio DBA di fiducia), quasi sempre dovute a anomalie sistemiche del tipo F (fornitore del software applicativo che ogni tanto fa danni scavando nei files di configurazione e operando modifiche del tipo:
$parametro=/dev/random
Naturalmente senza avvertire. Tant'è che la prima verifica che faccio quando si verificano problemi sinistri è digitare un:
pippo# last -20|grep $fornitore
Torniamo a noi; lancio i demoni a manina per verificare la bontà delle modifiche e dei files .cfg
C'è bisogno di uno script che lancia tutte le instanze del demone al riavvio della macchina.
root@ubigbck1# pgrep -lf mrtg
23164 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg ubigdbitc1-scan.cfg
21609 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg ubigdblis1-mem.cfg
21781 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg ubigdbitc1-mem.cfg
21336 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg unisio04-cpu.cfg
22103 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg unigen07-mem.cfg
6045 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg /bck/scripts/mrtg/ubigdblis1-cpu.cf
6498 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg ubigdbitc1-cpu.cfg
10540 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg ubigasbak1-cpu.cfg
21913 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg unigen05-mem.cfg
23078 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg ubigdblis1-dstatks.cfg
5969 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg /bck/scripts/mrtg/unigen02-cpu.cfg
21886 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg unigen02-mem.cfg
22188 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg unisio04-mem.cfg
6439 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg unigen05-cpu.cfg
6362 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg unigen07-cpu.cfg
23095 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg ubigdblis1-dstatwb.cfg
22933 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg ubigdblis1-scan.cfg
23221 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg unigen05-scan.cfg
23211 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg unigen07-scan.cfg
23380 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg ubigdbasmmg1-mem.cfg
23290 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg ubigdbasmmg1-cpu.cfg
23191 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg unigen02-scan.cfg
10818 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg ubigasbak1-scan.cfg
10689 /usr/bin/perl -w /usr/local/mrtg-2/bin/mrtg ubigasbak1-mem.cfg
Eccoli, redirigiamo quello che ci serve:
root@ubigbck1# echo "case \$1 in" >/etc/init.d/mrtgd
root@ubigbck1# echo "start)" >>/etc/init.d/mrtgd
root@ubigbck1# cd /bck/scripts/mrtg
root@ubigbck1# pgrep -lf bin/mrtg|grep ^[0-9]|awk '{print $4,$5}' >> /etc/init.d/mrtgd
root@ubigbck1# pgrep -lf bin/mrtg|grep ^' '|awk '{print $4,$5}' >> /etc/init.d/mrtgd
root@ubigbck1# echo ";;" >>/etc/init.d/mrtgd
root@ubigbck1# echo "stop)" >>/etc/init.d/mrtgd
root@ubigbck1# echo "pkill mrtgd" >>/etc/init.d/mrtgd
root@ubigbck1# echo ";;" >>/etc/init.d/mrtgd
root@ubigbck1# echo "*)" >>/etc/init.d/mrtgd
root@ubigbck1# echo "echo 'What'Ya Dueng?'" >>/etc/init.d/mrtgd
root@ubigbck1# echo ";;" >>/etc/init.d/mrtgd
root@ubigbck1# echo "esac" >>/etc/init.d/mrtgd
non dimentichiamo:
root@ubigbck1# chmod +x /etc/init.d/mrtgd
root@ubigbck1# ln -s /etc/init.d/mrtgd /etc/rc3.d/S99mrtgd
root@ubigbck1# ln -s /etc/init.d/mrtgd /etc/rcS.d/S99mrtgd
A posto!
venerdì 22 giugno 2007
openldap bug in cambio password
L'utilizzo di openldap pare dovuto a un decisamente buono incremento prestazionale rispetto all'utilizzo del db.
Ora, dopo un aggiornamento dell'applicativo interessato (un accrocchio di jboss tomcat e oracle), la versione di openldap in uso da 3 anni, una 2.1.25 ha cominciato a dare problemi.
Dopo un periodo di debug, kilometri di logs letti, dovrei avere stabilito l'origine del problema. Si tratterebbe di un bug documentato, dove un cambio password eseguito dall'applicativo causerebbe una corruzione del db (un BerkeleyDB 4.2.52 pacchettizzato SunFreeware). Unico modo di recuperare la directory era un ripristino da backup dei files del db o uno slapadd da precedente slapcat, quindi da un .ldif
Stamattina, vinta la guerra burocratica che tutto rende difficile, ho messo in produzione l'ultima stabile di openldap, la 2.3.32, sistemato il file di configurazione slapd.conf , che a distanza di anni ha introdotto un paio di cambi sintattici (attrs==attributes e simili).
La procedura di migrazione è stata alquanto indolore e semplice, inoltre ho, come sempre, optato per un aggiornamento con installazione in parallelo di binari e database nuovo, in modo da poter tornare indietro in una manciata di secondi al verificarsi di problemi imprevisti (che ci sono sempre soprattutto quando hai una macchina che è in produzione e centinaia di utenti che aprono chiamate a /dev/random anche abbastanza imbufaliti.
I tests di creazione utente e cambio password sembrano essere andati a buon fine; dopo 6 ore che il nuovo demone lavora tutto sembra ok.
In un prossimo post la procedura di aggiornamento.