Privacy Policy SdSM | FOLBlog - Pag. 6

Ricerca in FOLBlog

SdSM

Le avventure e le peripezie di un SysAdmin

[SdSM] LOGorroico

 Scritto da alle 06:27 del 17/04/2012  Nessuna risposta »
Apr 172012
 

6624_06_01

Alura, un po’ di tempo fa’… in effetti parecchio tempo fa, scrissi un pistolotto in cui minacciavosuggerivo un uso dei file di log un po’ piu’ utile ai vari programmatroti. Ovviamente non sono mai stato ascoltato.

Questa settimana sono di corvee’ con il foxxuto guinzaglietto elettronico, speravo che se ne stesse buono ma vengo richiamato dal mio riposo all’antelucana ora della 1.52 del mattino dal maledetto arnese che mi avvisa che un certo application swerver e’ un pelino costipato, non si sente tanto bene, zoppica… insomma e’ una chiavica totale.

Risveglio il lapdog dal suo stand-by e mi loggo sul server in questione, a parte un load average di 8 non vedo niente di particolarmente sbagliato, TomCat sta funzionando come dovrebbe, i servizi che dovrebbero funzionare funzionano o perlomeno i processi sono li’.

Guardo meglio il messaggio di errore che riferisce che un certo URL ritorna un errore 500 quando richiesto. Ovviamente sulla macchina non sta funzionando Apache e la richiesta viene fatta direttamente a TomCat. Riattivo il neurone che sa come ca$$o si usa wget e faccio la richiesta e mi becco un error 500 come risposta. Ok, quindi il monitor sta’ dicendo le cose giuste e c’e’ qualche cosa che non funzica.

Il log di TomCat e’ di 3.8 Gb e cresce a vista d’occhio.

Un rapido sguardo non mi dice niente di particolare. Apparentemente sembra che chiunque abbia deciso di scrivere questa chiavica di webapplicascion pensa di essere estremamente spiritoso in una maniera molto ‘geek’, quello sotto e’ un estratto del log.

INFO: Starting Coyote HTTP/1.1 on http-8080
Apr 12, 2011 2:09:46 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Apr 12, 2011 2:09:46 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/290 config=null
Apr 12, 2011 2:09:46 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 15234 ms
Attempting to load ESAPI.properties via file io.
Attempting to load ESAPI.properties via file io.
Not found in ‘org.owasp.esapi.resources’ directory or file not readable.
Not found in SystemResource Directory/resourceDirectory
Not found in ‘user.home’ directory
Loading ESAPI.properties via file io failed.
Attempting to load ESAPI.properties via the classpath.
Successfully loaded ESAPI.properties via the classpath! BOO-YA!
Successfully loaded ESAPI.properties via the classpath! BOO-YA!
Attempting to load validation.properties via file io.
Attempting to load validation.properties via file io.
Successfully loaded validation.properties via the classpath! BOO-YA!
Successfully loaded validation.properties via the classpath! BOO-YA!
[ERROR] PDFProcessor – urlParam: null seems to be malformed
Uopsa, who did this? You better fix it!
Attempting to load more.properties via file io.
Successfully loaded more.properties via the classpath! BOO-YA!
Starting processor
Starting processor (1)
Starting processor (2)
Trouble with processing resource 1289 (?)
Uopsa, who did this? You better fix it!
Starting processor (3)
Pickle Pickle url fickle…
ResolverUtils – Not possible to parse number (.) so formatting cannot be
applied. java.text.ParseException: Unparseable number: "."
ResolverUtils – Not possible to parse number (.) so formatting cannot be
applied. java.text.ParseException: Unparseable number: "."
ResolverUtils – Not possible to parse number (.) so formatting cannot be
applied. java.text.ParseException: Unparseable number: "."
ResolverUtils – Not possible to parse number (.) so formatting cannot be
applied. java.text.ParseException: Unparseable number: "."
seguono un centinaio circa di ‘java exception’… e l’applicazione non
e’ manco partita ancora…

[ERROR] PDFProcessor – urlParam: null seems to be malformed
Uopsa, who did this? You better fix it!
Could not retrieve item from Mediasurface, with url: …
com.mediasurface.general.ResourceException: Unable to locate host (public or
local) matching supplied name: …
PDFProcessor – Error occured, sending response 500
org.apache.tomcat.util.http.Parameters processParameters WARNING: Parameters: Invalid chunk ” ignored.
org.apache.tomcat.util.http.Parameters processParameters WARNING: Parameters: Invalid chunk ” ignored.
org.apache.tomcat.util.http.Parameters processParameters WARNING: Parameters: Invalid chunk ” ignored.
org.apache.tomcat.util.http.Parameters processParameters WARNING: Parameters: Invalid chunk ” ignored.
ripetere quanto sopra per un altro centinaio di volte…
Somebody made a bubu: Cannot convert Keywords of type class java.lang.String to class StaticSearchQuery$SearchType
No approved project found with projectItemKey [numerorandom?]
Pickle Pickle url fickle…
No approved project found with projectItemKey [numerorandom?]
Pickle Pickle url fickle…
No approved project found with projectItemKey [numerorandom?]
Pickle Pickle url fickle…
No approved project found with projectItemKey [numerorandom?]
Pickle Pickle url fickle…

E continua cosi’ per molte, moltissime, troppe righe… Una roba che mi viene subito voglia di conficcare l’intero log nello sfintere del programmatroto con l’aiuto di un robusto stivale.

Dopo aver madonnato e tirato maledizioni contro il programmatroto che ha deciso di vomitare tutta sta roba nel log cerco di capire che cosa accidenti fa questo coso quando deve fornire una risposta, dato che la web applicascion apparentemente funzica (o almeno, vomita la sua roba nel log), suppongo che il problema stia da qualche altra parte. Un rapido controllo mi dice che il database server sta funzionando. Mi concentro percui sugli altri servizi che girano sulla macchina.

La webapplicascion usa un qualche tipo di CMS che ha una serie di demoni che dovrebbero interagire in qualche modo tra di loro, i demoni sembrano in funzione solo che uno dei tanti non sembra tanto intenzionato a rispondere e mi lascia in attesa perenne di una connessione.

A questo punto decido che un riavvio del CMS potrebbe essere nell’ordine. Un semplice ‘stop’ non sembra sortire risultati, quindi procedo con un "search-and-destroy". Dopo di che rimuovo tutti i file temporanei, ripulisco la cache di tomcat, zappo via i vari pid file, lock file e mercanzia varia e riavvio il tutto.

Cue altre 1500 righe di log che vengono sparate dentro mentre questa roba si avvia. Dopodiche’ riprovo con wget e pare funzionare. Spedisco una bella maillina ai programmatroti in questione suggerendogli di ripulire il log dai vari messaggi inutili e di concentrarsi sui messaggi utili.

Davide

legenda personaggi

[SdSM] Parla come mangi

 Scritto da alle 10:47 del 01/04/2012  Nessuna risposta »
Apr 012012
 

Prima telefonata della giornata.

CL – Vogliamo fare un cambiapagina sul nostro sito
IO – Un … cosa?
CL – Un cambiapagina.
IO – …e che sarebbe?
CL – Ma si’ un cambiapaginacosoli’, che se tu vai sulla pagina taldetali ti arriva invece quella giusta.
IO – Intendi dire che vuoi una redirect?
CL – Ed io che ho detto?

Spiega al cl di turno che deve mandarmi una mail spiegando quale url vuole redirigere su quale. Poco dopo arriva un’altra telefonata.

CL2 – Noi vorremmo registrare un dominio ma fare in modo che una certa directory vada su una pagina diversa.
IO – Momento, quando tu dici ‘directory’ intendi dire che tu vuoi redirigere un url verso un’altro sito?
CL2 – Allora, noi vogliamo registrare il dominio http://www.questoquinoneundominio.nl/zippo/zappo/luppo, ma noi vorremmo che la sottodirectory "luppo" vada invece da un’altra parte.
IO – Ok, nessun problema, allora per registrare un dominio mi serve…
CL2 – Ma la registrazione la facciamo con il nostro di provider.
IO – …ok in questo caso basta che puntiate il dominio sul server web che…
CL2 – Ah no, quello va’ direttamente sul server web del nostro cliente.
IO – …e allora che mi hai chiamato a fare?

Passa un altro po di tempo.

CL3 – Sono CL3 di $cielletreefigli, la internet non funziona!
IO – …hummm… strano, il server e’ in funzione, non vedo nessun problema, funziona anche da altre reti.. no, non vedo nessun problema io, sicuro che non sia un vostro problema locale?
CL3 – Ma se io provo ottengo un errore!
IO – Che errore e facendo cosa esattamente?
CL3 – Allora e’ la terza mail che mando e che mi torna indietro dicendo che c’e’ un problema e che non funziona.
IO – (mail???) Mandandola a chi? E che errore?
CL3 – Allora se mando la mail qui’ al nostro fornitore mi ritorna indietro dicendo che c’e’ un errore.

Dopo innumerevoli bestemmie riesco a fargli leggere il foxxuto messaggio di errore, che e’ un bellissimo "utente sconosciuto".

IO – Quindi la "internet" funziona benissimo.
CL3 – Ma a me mi ritorna un errore.

Mettete qui (se vi pare) una lunga ed intricata spiegazione che i suoi errori non sono un mio problema con riappendimento finale. Ma la pace e’ di breve durata, infatti mi arriva una talefonata da uno dei CL dell’ufficio interno.

CL4 – Non riusciamo a navigare dalla sala riunioni.
IO – Ma state usando la rete Wired o quella Wireless?
CL4 – Quella wireless
IO – Quella funziona solo per l’accesso web
CL4 – Ah, allora non possiamo andare su facebook?

Ovviamente perche’ facebook non e’ web no eh? E questi dovrebbero essere dei Web Developers! Ma in effetti, anche quelli di $brancodipaguri avrebbero dovuto esserlo.

Davide

legenda personaggi

[SdSM] Interdet is for dummies

 Scritto da alle 06:27 del 25/03/2012  Nessuna risposta »
Mar 252012
 

harley-davidson-for-sale

Prima che cominciate a rompere i marroni via commento, lo dico subito all’inizio: quello che segue non ha niente a che fare con la "sala macchine", ma ho voluto metterlo per iscritto lo stesso perche’ e’ (a mio parere) abbastanza rappresentativo del modus pensandi di parecchia gente, anche (e soprattutto) gente che si ritiene imparata nella tecnologia informatica. In effetti lo stesso modus pensandi lo ritrovo in parecchi dei miei CL/UL ed anche SL. Quell’atteggiamento del tipo "io ne so di piu’ e non sbaglio mai" che e’ piu’ pericoloso di un Kalashnikov carico e senza sicura perche’ e’ sempre pronto a mozzicarti le chiappe quando meno te lo aspetti.

Antefatto: come molti (spero) avranno oramai capito, io viaggio per lo piu’ in motocicletta e come molti motociclanti di tanto in tanto finisco in varie fiere, mostre e chi piu’ ne ha piu’ ne metta dedicate al mondo a due ruote. Questo week-end stavo per l’appunto perusando negli stand di una siffatta fiera e mi e’ capitato di imbattermi nello sgabbiotto di $scalzacaniadueruote.

Chi sono $scalzacaniadueruote? Trattasi di un arcinoto mensile dove pubblicano vari articoli di interesse generale. Li conosco solo perche’ l’abbonamento al suddetto giornalucolo era in omaggio con l’abbonamento all’ANWB (l’ACI olandese) ecco perche’ ricevo tale mucchio di carta patinata mensilmente e quindi li conosco. Il giornale in se’ non ha ne’ gloria ne’ infamia, quasi niente articoli interessanti, si’, lo so anche io che il miglior modo per godersi la moto e’ andare sulle strade di montagna (che non esistono in Olanda) quindi pubblicare ‘n’ articoli sui "migliori percorsi sulle Alpi" non e’ che mi riempia di ammirazione per il sarca$$o che si puo’ permettere di andare quando ca$$o gli pare con una moto nuova di trinca, due settimane a disposizione e 3 veicoli di supporto per le foto.

L’unica cosa buona in tale giornale e’ che di tanto in tanto pubblicano dei "percorsi" locali, pezzi di stradine che appaiono abbastanza interessanti perche’ locali e con qualche punto di interesse (costruzioni, storia… queste cose cosi’). Tali "percorsi" dovrebbero essere disponibili come tracciati GPS tramite il loro foxxuto sito interdet, e dico "dovrebbero" perche’ la redazione di $scalzacani cerca di arrotondare gli introiti pretendendo di vendere tali cose. Ok, sarebbe UN euro al tracciato, quindi non credo diventeranno tanto ricchi tanto presto, ed io sono abbonato quindi dovrebbero pure essere aggrattisse per me, ma (c’e’ un ma) per il download bisognerebbe utilizzare un qualche software-chiavica che (indovina un po’) e’ solo per windows e soprattutto non sembra voler funzionare. Un bel giorno, tanto tempo fa, trovai uno di questi percorsi abbastanza interessante e dopo aver dato un’occhiata al loro sito interdet me lo scaricai senza usare il loro software, senza registrarmi e senza pagare niente. Se vi sembra straordinario forse dovreste rivedere il vostro concetto di "sicurezza". In effetti gli scrissi anche un paio di volte spiegando la faccenda, ma non ho mai ottenuto alcuna risposta. La cosa non mi ha mai sorpreso molto.

Comunque sia, sabato ero li’ che gironzolavo quando ho visto il loro bugigattolo ed ho deciso di andare a lamentarmi direttamente. Ondepercui mi rivolgo al CL che era li’ ad annoiarsi ed ho espresso il mio disappunto per questa faccenda dei "percorsi" e del loro software del menga.

IO – …quindi non solo non funziona ma e’ totalmente inutile.
CL – Il software lo abbiamo sviluppato perche’ consente una migliore gestione dei percorsi che sono gia’ stati scaricati dal sito, in questo modo uno puo’ vedere quali ha fatto e quali no e funziona un po’ come un contatore.
IO – Aho’ ma ci senti? T’ho appena finito di dire che non funziona in primo luogo perche’ va in conflitto con una manica di plugin per firefox e soprattutto e’ inutile perche’ chiunque con due dita di cervello puo’ scaricarsi i percorsi SENZA software.
CL – Scaricare i percorsi senza usare il nostro software e’ impossibile.
IO – Io lo faccio regolarmente.

CL mi fissa con quell’espressione che i miei CL/UL usano per convogliare il loro pensiero di "tu non sai cosa ca$$o stai dicendo". Di solito dopo che gli ho detto che il loro piano ha meno probabilita’ di funzionare di un una teiera di carta velina.

A questo punto e’ comparso un altro tizio che probabilmente era l’UL della situazione.

UL – Che succede?
IO – Sto esprimendo la mia frustrazione alla necessita’ di utilizzare un software inutile e non funzionante per accedere ai vostri "percorsi". Non funzionante perche’ non funziona ed inutile perche’ e’ possibile scaricare gli stessi percorsi senza software. Quindi sarebbe molto piu’ semplice e meno oneroso per noi utenti e per voi se metteste quei cosi a disposizione senza necessita’ di ammennicoli tecnologici.
UL – ?? Come inutile ??

Mettete qui, se vi pare, una ridescrizione dell’intera faccenda.

UL – Ma il software lo abbiamo fatto sviluppare da una software house specializzata, ci hanno assicurato che e’ impossibile accedere ai files senza utilizzarlo, e’ praticamente a prova di bomba!
IO – Anche il Titanic lo chiamavano "inaffondabile". Ho appena finito di dire che io i percorsi li scarico senza software e senza alcun bisogno di registrarmi o altro.
CL – No no, senza software non e’ possibile scaricare i percorsi, e’ un sistema ad alta sicurezza…
IO – (indicando il PC sul tavolo) Vogliamo vedere? Ci scommettiamo sopra un caffe’?

Mi accomodo davanti al PC.

IO – Allora (clicckety-click) prendiamo questo, vedi che presenta il percorso in questa fetecchia di mappa, la mappa e’ generata da un applet e se io guardo il sorgente della pagina (clicckety-click) vedo che l’applet usa questo file per generare la mappa, prendo il file di origine (copiaincollaURL,download) che e’ una semplice sequenza di coordinate GPS che basta incollare in qualunque convertitore on-line (copiaincollaonline) ed ecco che mi ritrovo un file XML che posso importare nel mio GPS (collega GPS ed importa il file) ed eccoti il percorso sul GPS. Tempo totale: 2 minuti. Login: 0, pagato: 0 software usato: il browser.

CL ed UL erano ancora li’ che cercavano di riallineare i loro neuroni con la realta’.

UL – Ma.. ma… il software… la login…
IO – Se e’ su internet non e’ sicuro ne’ potra’ mai esserlo.
UL – …login… software… mappa…
IO – Allora, questo caffe’?

Addendum a tutt’oggi non hanno ancora modificato il sito ne’ la loro policy, apparentemente il fatto di sapere che qualche cosa non funziona non e’ sufficiente a fargli cambiare idea. Io continuo a scaricare i percorsi con il mio sistema.

Davide

legenda personaggi

Mar 182012
 

startrek-boldlygo

DB – Ah, cercavo proprio te!

Ora, a parte che nel 90% dei casi io sono seduto al mio posto quindi non dovrebbe essere troppo difficile trovarmi, ma chissa’ perche’ quando DB dice "cercavo proprio te" a me fa venire in mente che forse era meglio se non mi trovava.

IO – E mi hai trovato. Che succede adesso?
DB – Te la ricordi l’applicazione di $allupati?
IO – Purtroppo si’, che succede adesso?
DB – Sai che avevano dei problemi con la parte che controlla le utenze.

Per chi non se lo ricordasse o non gliene fregasse una beata fava, l’applicazione di $allupati, di cui avevo parlate in questa e quest’altra storia, ha una qualche parte di "gestione login" che $allupati ha deciso di "appoggiare" ad un loro sistema SAP, il piccolo problema e’ che se il loro sistema SAP ha qualche magagna l’intera batteria di servers si incrocchia e non funziona piu’ un tubo.

IO – Ci ho quasi paura a domandare, che cosa si sono inventati adesso?
DB – Non lo so esattamente ma vogliono aggiungere altri 4 server all’intero ambiente e…
IO – Altri quattro?

Ma questa gente ha una strana predilezione per buttare via i soldi. Comunque sia, cerco di capire che accidenti succede e mi leggo la mail che spiega la rava e la fava. O meglio spiega quasi niente ma riporta un link ad un qualche sito dove spiegano qualche cosa.

Allora, questi rintronati vogliono controllare gli utenti e gestirli in una sorta di Single Sign On centralizzato. Cosa che, di per se, non e’ che sia tanto anomala o sbagliata da farsi.

Ci sono ovviamente una marea di modi per farlo. Dato che i loro utonti non dovrebbero cambiare molto spesso si potrebbe fare una bella procedura di esportazione dal loro merdacchioso sistema SAP ed importare i dati nel loro altrettanto merdacchioso database (oracle) e quindi gestirsi la login nella loro merdacchiosa applicascion, ma questo approccio ha due seri problemi: 1) potrebbe funzionare e 2) e’ estremamente semplice.

Come sospettavo $allupati e’ il tipo di azienda i cui manglers di fronte ad un problema e dovendo scegliere una soluzione cercheranno sempre e comunque un tipo di soluzione che sia la piu’ complessa e prona ad errori catastrofici possibile. Uno stile manageriale che puo’ essere sintetizzato con la frase "perche’ spendere X per prodotto Y quando puoi spendere 2X per ottenere 1/2 Y?".

Il risultato e’ che hanno selezionato un qualche accrocchio di software ‘SSO’ (che a me sembra l’ennesima interpretazione di LDAP) ed un qualche accrocchio di software per ‘connettere’ sto coso con il loro sistema (due prodotti per fare il lavoro di uno).

Ma ovviamente non possono fare le cose in maniera semplice, cosi’ hanno deciso di usare 2 server separati, uno per il ‘sso’ e l’altro per questa specie di ‘connector’, che e’ denominato (con sprezzo del pericolo) "Enterprise" (To boldly go where no man has gone before) connector. Ora a parte che io non userei mai niente chiamato "enterprise" (oe’, ma ve li ricordate quei telefilm? c’era sempre qualche cosa che falliva catastroficamente! E non era mai qualche cosa di "semplice", che so io, gli ascensori che non andavano, era sempre qualche cosa di vitale…) ma chissa’ perche’ questo ‘connector’ mi puzza tanto di una impiallacciatura di java su un volgarissimo client ldap.

IO – Ok, bello (mica troppo). Ma perche’ vogliono quattro server? Uno non e’ abbastanza?
DB – No perche’ loro ne vogliono due per l’ambiente di produzione e due per quello di test.
IO – L’ambiente di test che praticamente non usano perche’ fanno i test in produzione eh? Ah bello… Ok, ma perche’ DUE server?
DB – Per ridondanza e sicurezza.
IO – Ah, lo stesso concetto per cui hanno due database server di cui pero’ ne usano uno solo giusto?
DB – Si be’… se e’ per questo usano anche un solo server LAMP.
IO – …’momento… ne hanno quattro di quelli…
DB – Si, solo che uno sarebbe di test e degli altri 3 solo uno e’ effettivamente usato per produzione.

Sto incominciando a pensare che il termine "enterprise" dovrebbe essere applicato all’intero ambiente. Comunquesia, io installo questi cosi e poi rimango in attesa del da farsi.

Un paio di giorni dopo mi arriva una mail dal tipo di $allupati con un bel file .cvs di 150 Mb (centocinquantamega) da importare in questo coso. Se non altro il programma di importazione ha una modalita’ "test" che consente di vedere se le cose potrebbero funzionare.

Io eseguo e lui dopo 3 nanosecondi sputa fuori un elenco dei records che dovrebbero essere importati con nessun problema. Ok, per non saper ne’ leggere ne’ scrivere lancio il tutto in screen. Dopo un’oretta circa che questo coso gira do’ un’occhiata all’output che ho rediretto su un file di log.

Un rapido calcolo mi dice che questo coso ne avra’ ancora da fare per circa 19 ore. E meno male che e’ in ‘screen’ quindi posso lasciarlo li’ ed andarmene a casa. Altro che velocita’ warp.

Davide

legenda personaggi

[SdSM] C’era Una Volta…

 Scritto da alle 06:27 del 11/03/2012  Nessuna risposta »
Mar 112012
 

once-upon-a-time

C’era una volta, in una landa magica e misteriosa dove finiscono tutti quelli che sono troppo sfigati per finire in un posto migliore, un SysAdmin, che lavorava per una ditta di altri sfigati cercando di sbarcare il lunario. Ed uno dei modi di sbarcare il lunario, che in effetti era l’unico, era di gestire installazioni di applicazioni su vari server.

Ed uno di questi server apparteneva a $noipuliamoivetri ed era un server tutto contento, come puo’ essere contento un server soprattutto quando non e’ di produzione. Ed ogni volta che c’era da installare una nuova versione dell’applicazione occorreva yada yada yada yada yada e blah blah blah blah blah yada yada yada yada… insomma una serie di cose non troppo difficili ma sempre ripetitive.

E dato che il server non era di produzione i programmatroti chiedevano delle installazioni spesso e volentieri. Onde per cui, il nostro SysAdmin decise di indossare l’armatura del nobile cavaliere ScriptMan e produsse uno script per svolgere tutte le operazioni. Poi, su suggerimento del Signore e Padrone della landa, il nobile cavaliere aggiunse una serie di comandi per "migliorare" la sicurezza del sistema. Che in sostanza significa cambiare i permessi su una batteria di directory. Solo che dato che era venerdi ed il Sysadmin era piuttosto stanco non venne immediatamente verificato. Ed ovviamente per quel giorno non ci furono altri rilasci, ne il giorno dopo. Ragion per cui il SysAdmin lascio’ un messaggio che diceva piu’ o meno "lo script non e’ testato se ci sono dei rilasci domandare a me".

Poi il SysAdmin decise di prendersi un paio di meritati ed agognati giorni di ferie e se ne ando’ a fare un bel giro sul suo destriero metallico. Ed ovviamente, mentre era nel mezzo delle montagne, uno dei programmatroti decise di chiedere un bel rilascio e un altro sysadmin che non ha niente a che vedere con il nostro SysAdmin e che verra’ quindi indicato come $altrosysadminchenonhanienteachevedereconSysAdmin procedette al rilascio.

Purtroppo pero’, forse perche’ il SysAdmin era stanco quando aveva completate lo script o forse perche’ era piu’ rincoglionito di quanto gli piaccia ammettere, lo script conteneva un errore. Il SysAdmin aveva scritto ‘ mentre avrebbe dovuto scrivere ". E se voi state pensando che non e’ un gran che di errore, spero per voi che vi limitiate a programmare la pulizia della lettiera del vostro gatto.

Cosi’ $altrosysadminchenonhanienteachevedereconSysAdmin inizio’ il rilascio ed il risultato fu che il server che non era di produzione fini’ ben tostato al punto che non funzionava piu un fico secco di niente. Ed il Signore della Landa ululo’ e bestemmio’ parecchio, ed il Cliente ululo’ e bestemmio’ parecchio perche’ il suo server che non era di produzione dovette essere reinstallato. E quando il SysAdmin rientro’ dai suoi ben meritati due giorni di ferie si ritrovo con un sacco di gente che ululava e madonnava. Ragion per cui dopo aver reinstallato il server prese lo script e lo segrego’ nel piu’ buio angolo di ~/scriptchenonfannociochedovrebbero.

Passa un po’ di tempo ed il nostro SysAdmin decide di riprendere quello script. E cosi’ il SysAdmin programmo’ e debuggo e testo’ e programmo e debuggo e programmo’ e testo’ e programmo e… ok, avete capito. Ed alla fine lo script non solo faceva quello che doveva fare ma lo faceva anche bene. Ed il SysAdmin era tutto contento ed il server era tutto contento, quanto puo’ essere contento un server che non e’ di produzione e lo script era anche lui contento.

E passarono i giorni e lo script continuava a fare il suo lavoro, finche’ il Signore delle Lande decise di spostare il server in un nuovo server virtuale. E $altrosysadminchenonhanienteachevedereconSysAdmin creo’ il server virtuale e decise di ripristinare un backup del server originale. Ora, $altrosysadminchenonhanienteachevedereconSysAdmin avrebbe potuto fare un’immagine del server ed usare quella, ma il fare l’immagine avrebbe richiesto del tempo, mentre un’immagine precedente esisteva gia’ e lui decise di usare quell’immagine anche se era vecchia di qualche mese.

Il server (virtuale) che non era di produzione continuava a funzionare tranquillamente e tutti erano contenti.

Almeno fino al giorno in cui un ennesimo rilascio viene richiesto. Stranamente sempre di venerdi’ alle 16.30… Comunque sia, il nostro SysAdmin si logga sul server che non e’ di produzione ed esegue il suo script di installazione. E lo script si lamenta che non e’ stato eseguito con privilegi di root.

Ed il SysAdmin penso’ "strano… mi sembrava di aver cambiato questo messaggio…" ma il SysAdmin non si ricordava piu’ se il messaggio era stato cambiato in questo script o in un altro script di un altro server di cui ce ne e’ una caterva e sono quasi tutti uguali ma diversi. Ma il SysAdmin si ricordava anche che lo script era stato corretto molto tempo prima, quindi tranquillamente utilizzo’ la corretta incantazione ed esegui’ lo script con privilegi di root…. ed immediatamente il SysAdmin si rese conto del problema… lo script era quello precedente alla correzione. E prima che il SysAdmin potesse chiamare la corretta incantazione per bloccare tutto il server CHE NON ERA DI PRODUZIONE era di nuovo tostato.

Ed il SysAdmin bestemmio’ e bestemmio’ e bestemmio’ finche’ non aveva esaurito le bestemmie ed aveva cominciato a ripetersi.

Davide

legenda personaggi

Mar 042012
 

Il primo "computer" non era programmabile. Era completamente elettromeccanico. Era perfetto per svolgere un compito e solo uno. Il che significa che se si voleva fare qualche cosa di diverso era necessario smontarlo pezzo per pezzo ed inventarsi un nuovo computer per svolgere il nuovo compito. Il vantaggio innegabile e’ che qualunque CL o UL capiva al volo che quando il tecnico di turno rispondeva "no e’ possibile" alle loro richieste di cambiamenti di operazioni il significato della frase era no.

Oggi i computers sono programmabili, il che significa che per fargli fare cose diverse l’unica cosa da cambiare e’ il software. Ed ammettiamolo, vedere un tizio con un intero set di chiavi inglesi smontare un grosso arnese elettromeccanico rende molto chiaro il concetto di "cambiamenti", mentre vedere un moderno programmatroto (o anche sysadmin) tasteggiare non ha lo stesso impatto.

Il risultato e’ che la maggioranza dei CL/UL/SL non hanno bene chiaro il concetto di "non si puo’ fare con il sistema corrente". Un altro problema che faticano a comprendere e’ che il computer, anche quando programmato ad arte, fa quello che il programma gli dice di fare, il che non e’ la stessa cosa che "quello che l’UL in questione pensa che il computer dovrebbe fare". In molti casi il problema e’ che l’UL in questione non ha la piu’ pallida idea di esattamente cosa dovrebbe fare. Vuole solo che lo faccia.

Tutto questo panegirico per introdurre il CL ed il problema odierno.

Ordunque abbiamo $noivendiamomotociclette, una arcinota azienda giapponese che produce e vende motociclette (ed in effetti un sacco di altra roba con motori a scoppio) e che ha un nuovissimo sito interdet che (in teoria) gestisce una batteria di nazioni.

Per ogni "nazione" c’e’ un diverso dominio di primo livello, ma tutti questi finiscono nello stesso server (load balancer) che dovrebbe "servire" la nazione con la lingua giusta a seconda di quello che il povero tapino di utente ha digitato.

Poi l’UL della situazione ha avuto un’idea spettacolosa: GeoLocazione! Che sarebbe quella roba che guardando l’indirizzo IP il sito cerca di indovinare quale e’ la nazione giusta ed automaticamente "serve" il sito giusto. Ora, sorvoliamo che secondo me e’ una grande cazzata, se io decido che voglio il sito .it anche se sono in .nl perche’ tu devi rimandarmi a .nl anche se io non lo voglio?

Poi l’altro UL della situazione si e’ svegliato e per non essere da meno ha deciso di aggiungere un altro paperocchio… e poi un altro e cosi’ via.

Il risultato e’ che questi server sono dei troiai pazzeschi, Windows con Apache + TomCat + IIS + sadiocosa.

Ed oggi arriva l’ennesimo casino, nella forma di CL che mi viene a cercare.

CL – Tu sei un esperto di Apache vero?
IO – Oddio… "esperto"…
CL – Perche’ noi abbiamo dei problemi con le redirect del sito…
IO – Che problemi?
CL – Vieni che ti faccio vedere…

Cosi’ andiamo sul suo picci’, che e’ attaccato in VPN al sistema interno di $noivendiamomotociclette e dal quale si puo’ vedere il problema.

CL – Allora se io digito ‘noivendiamomotociclette.co.uk’ lui dovrebbe andare su ‘www.noivendiamomotociclette.co.uk’ ma non lo fa…
IO – Ok, vediamo dove sono queste redirect.

E lui mi punta ad un file .ini di IIS. Un rapido controllo mi dice che le redirect sembrano anche giuste. Quindi gatta ci cova. Dopo un giro di verifiche scopro che IIS in effetti non gestisce il sito, il sito e’ gestito da Apache che a sua volta fa’ da Proxy per IIS. Ed in Apache io ho una directiva di ‘proxy’ che sovrascrive l’host prima di passare la palla ad IIS. Quindi IIS non vedra’ mai l’hostname giusto. Metti a posto quello e le cose cominciano ad andare un pelo meglio.

CL – E poi abbiamo che se io digito ‘co.uk’ lui dovrebbe andare su co.uk/uk…

E metti a posto anche quello con una RewriteCond di controllo sul dominio.

CL – E poi abbiamo queste rewrite qui’…
IO – Quelle non funzioneranno mai.
CL – Ma devono funzionare.
IO – Quajo’, tu mi hai appena detto che vuoi che co.uk rediriga su /uk, il che significa che qualunque URL deve avere un /uk all’inizio per funzionare, se redirigi "tutto quello che non ha /uk all’inizio" su "aggiungi /uk all’inizio" la successiva redirect che non si aspetta un "/uk" all’inizio non funzionera’. O ci metti l’UK anche li’ o ti attacchi. Il computer fa quello che gli dici di fare, mica quello che tu vorresti lui facesse.
CL – Ma quello che vogliamo fare noi e’ che se io metto co.uk lui vada su /uk ma se non lo metto e se invece metto quest’altra cosa…
IO – Mentre la successiva-successiva redirect di nuovo assume che non vi sia un /uk all’inizio, quindi la prima lo mette la seconda non lo vuole e la terza la ri-aggiunge…
CL – ‘spetta ne…

Dopo un quarto d’ora circa passato a grattarsi la pera e’ risultato chiaro che manco CL aveva le idee chiare sul cosa si voleva che queste redirect facessero. Quindi l’ho lasciato nel suo brodo (cercare di capire che cosa si vuole che il sistema faccia e riuscire a spiegarlo in modo che abbia un senso) e me ne sono andato a prendere un caffe’.

CL e’ ritornato alla carica poco dopo. La sua soluzione: spostare meta’ delle Redirect su Apache e lasciare l’altra meta’ su IIS in modo che "non si parlino"… Quajo’, se tu hai Apache che passa la palla ad IIS, le redirect si devono parlare per funzionare, altrimenti e’ un discorso tra sordi…

Ovviamente il mio suggerimento di spostare tutte le redirects nello stesso posto e gestirle tutte in un posto suo non e’ stato manco preso in considerazione. E adesso aspetto domani, quando l’UL della situazione dovrebbe decidere come riorganizzare tutta sta roba.

Davide

legenda personaggi