Attività da sistemista / 1- NOVICE Spiegare cosa fa un sistemista non è sempre ovvio. Definire quali sono i suoi compiti è quantomeno pretenzioso. Inquadrare gli skill di cui ha bisogno è limitativo, visto che di fatto, in molte realtà, un sistemista deve poter gestire e configurare hardware e software eterogenero che richiedono conoscenze ed esperienza disparate. Le attività sistemistiche su un server con qalsiasi sistema operativo variano a seconda delle funzioni della macchina e del contesto lavorativo. Generalmente il sistemista si dovrebbe preoccupare di: 1- Partecipare a riunioni e fornire la propria opinione sulla definizione dell'infrastruttura informatica e la scelta e il dimensionamento dell'hardware da utilizzare; 2- Installare le macchine; 3- Eseguire le procedure di post-installazione standard (aggiornamento software, rimozione servizi inutili, hardening del sistema, installazione di script e procedure custom); 4- Installare, configurare e testare i servizi richiesti per la macchina; 5- Monitorare performance, sicurezza e funzionalità del sistema; 6- Assistere e assecondare le richieste dirette o indirette degli utenti del sistema (sviluppatori e utenti dei servizi); 7- Eseguire backup e ripristino dei dati; 8- Automatizzare varie procedure nel sistema; 8- Documentare approfonditamente il lavoro svolto. Troppo spesso il sistemista: 1- Non viene interpellato per una consulenza sulle tecniche più adeguate per le esigenze richieste; 2- Racka, cabla, se necessario smonta e rimonta, e installa le macchine; 3- Non ha una procedura standard di post installazione a cui attenersi; 4- Installa e configura i servizi necessari per la macchina, non sempre li testa a dovere; 5- Non controlla quasi mai i log di sistema, non implementa procedure di controllo; 6- Asseconda gli utenti ma li odia; 7- A volte prevede il backup dei dati, raramente esegue test di recupero; 8- Ripete spesso i soliti comandi; 9- La migliore documentazione la mantiene in testa, il resto in qualche file sul proprio computer. Generalmente il tutto si spiega e si tende a giustificare con la cronica mancanza di tempo, spesso basterebbe un po' di lucidità progettuale e lungimiranza per riuscire ad ottenere tutti i risultati e alla lunga risparmiare tempo. - La documentazione è fondamentale: permette di mantenere memoria storica del funzionamento dei sistemi e mette in grado il sistemista di delegare a colleghi meno esperti o appena arrivati di svolgere correttamente il lavoro che dovrebbe svolgere da solo. - La partecipazione alle decisioni tecniche va richiesta con la giusta insistenza. E se ci ritrova a dover eseguire lavori, imposti dall'altro e tecnicamente discutibili, è doveroso quantomeno esprimere il proprio dissenso e suggerire le alternative più adeguate. - Nonostante il knowledge generalmente vasto e variegato che spesso un sistemista deve avere, il suo compito di fatto è oscuro ai molti e a volte considerato di importanza trascurabile. Di solito ci si accorge del contrario quando un sistema in produzione va down e qualcuno deve farlo tornare a a funzionare. - L'utente che usa i servizi della macchina o lo sviluppatore che riempe i contenuti di un sito web, per quanto generalmente poco sensibili alle esigenze e condizioni del sistemista, NON può e NON deve essere considerato un nemico. Di fatto è il motivo per cui il sistemista lavora e, in ogni caso, non ce se ne può disfare. L'unico modo per conviverci al meglio è educarlo all'uso del sistema e capire cosa gli serve per ridurre problemi e tempi di implementazione. - Per quanto possibile è sempre consigliabile mantenere hardware e software omogenei: hardware dello stesso fornitore e non eterogeneo riduce complicazioni e velcoizza la sostituzione di pezzi di ricambio. Sistemi allineati (stesso OS, stessa distribuzione, stessa versione) rendono più facile, comoda e rapida l'attività sistemistica: gli aggiornamenti di software e kernel possono essere più rapidi e viene ottimizzato il tempo per seguire le problematiche di sicurezza di un sistema operativo. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Voglio “elaborare” ulteriormente la mia risposta qui nel mio blog. Premessa fondamentale: IO NON MI RITENGO UN SISTEMISTA LINUX. Negli ultimi mesi, anche grazie al mio lavoro, ho accumulato delle esperienze importanti, ma la mia attività è così frammentata e varia che NON RIESCO a diventare esperto in un particolare campo. Ciò può essere bene o male, a seconda di cosa si vuole. Ritengo però di essere in grado di dare buoni consigli a chi vuole intraprendere questa strada. <> <> <> <> <> <> <> <> 1. Sei sicuro che vuoi essere un sistemista Linux? Potrebbe essere una tua passione passeggera… Assicurati che fare il sistemista è esattamente ciò che vuoi nella vita. Sappi che per ottenere dei risultati avrai bisogno di mesi e mesi di duro lavoro, e che iniziare oggi per smettere presto equivale solo a “divertirsi”, ma a non ottenere nessun risultato concreto. <> <> <> <> <> <> <> <> 2. Sei ancora sicuro che vuoi essere un sistemista Linux? Cerca di ottenere informazioni da chi attualmente fa questo tipo di lavoro: basta iscriversi ad un paio di mailing list per amministratori di sistema, e chiedere “cosa ne pensate del vostro lavoro? Lati positivi? Lati negativi?” Non prendere per oro colato tutto quello che ti dicono, ovviamente, e considera che le persone possono essere frustrate, o particolarmente positive, per motivi che NON riguardano il tipo di lavoro che fanno. Conosco un impiegato dell’ENEL che è FELICISSIMO del suo lavoro, e che ha VOLUTAMENTE rinunciato ad un avanzamento di carriera per questo. Ciò non significa che lavorare all’ENEL è fantastico, significa solo che questo mio amico è una persona equilibrata e saggia. <> <> <> <> <> <> <> <> 3. Ora che sei motivato… vediamo cosa fare. Per prima cosa, dotarsi degli strumenti necessari, ovvero: un server da amministrare! Potete scegliere due alternative: una fatta in casa, una in remoto. A1. Trovatevi un computer, installateci Linux (io consiglio vivamente Debian, Slackware o Ubuntu Server, sono tre ottimi punti di partenza; personalmente ritengo Slackware un po’ meno adatta A REGIME, ma come mezzo per imparare è fantastica). A2. Procuratevi una ADSL con IP statico, o usate un servizio di mapping dinamico del vostro IP (come www.no-ip.com, ma con un minimo di ricerca ne trovate a decine). Lo scopo è comunque di avere un IP statico per poterci puntare un vostro dominio. B1. Comprate un server virtuale (ottimo quello di VPSLink.com, vi consiglio il Link-4, ha un ottimo rapporto prezzo-prestazioni e viene ospitato su macchine potenti), è una soluzione un pochino più costosa, ma secondo me è più interessante. E poi, se davvero volete diventare sistemisti Linux e quindi dedicare centinaia di ore all’apprendimento, non venitemi a dire che non potete permettervi di spendere un euro al giorno per questo. A questo punto, dopo aver scelto A o B, vi trovate con una macchina “pulita” e pronta da usare. <> <> <> <> <> <> <> <> 4. Acquistate un dominio internet Vi serve un dominio internet, che poi farete puntare al vostro server. Aruba offre la registrazione con gestione DNS senza posta a 10 euro annui + iva, ovvero 12 euro. Non male. Una volta che avrete configurato un vostro DNS, potrete scegliere di far puntare i Name Server del dominio direttamente al vostro server. All’inizio, però, vi consiglio di essere cauti, e di limitarvi a far puntare i DNS all’IP del vostro server. In questa maniera potete iniziare a vedere risultati anche PRIMA di aver installato con successo un server DNS. <> <> <> <> <> <> <> <> 4. Leggete un po’ di documentazione online. Prima di “smanettare”, cercate di capire almeno in linea generale cosa state facendo. E’ inutile TROPPA pratica, se non la si può associare ad una teoria di base. Ci sono diverse linee di pensiero a tal proposito: io preferisco un SANO mix tra teoria e pratica, partendo dalla teoria e associandola PRESTO alla relativa pratica. Con Google è facile trovare centinaia, migliaia di siti web sull’argomento. Cercate di fare una selezione, anche in base alla qualità del sito e dei contenuti. Un buon punto di partenza sono sicuramente gli Appunti di Informatica Libera, che però si adattano ad un lettore molto paziente. Sono tuttavia utili e piacevoli se presi “a bocconi”, guardando solo l’argomento che interessa. Avrete anche bisogno di qualche rudimento di networking (indirizzi di rete, netmask, routing). Occhio: se scoprite che vi piace il networking, avete sbagliato mestiere: l’amministratore di rete è DIVERSO dall’amministratore di sistema. <> <> <> <> <> <> <> <> 5. Iniziate un diario personale (o un blog) Se è vero che volete diventare sistemisti Linux, dovrete faticare per mesi, o anni… Meglio quindi aggiungere un piccolo aiuto motivazionale: iniziate a tenere un piccolo diario personale (su carta o nel PC), o addirittura aprite un blog per condividere con gli altri le vostre avventure e i vostri risultati. NON aspettatevi che il blog diventi visitatissimo in pochi giorni, l’argomento è meno interessante della Canalis o della nuova Ferrari; tuttavia, se riuscite a scrivere il blog con un po’ di attenzione nei dettagli, nel tempo vi troverete un seguito di lettori. Un’altra ottima idea potrebbe essere quella di raccogliere le informazioni più utili in una guida (che potremmo associare ad UbuntuSemplice, ad esempio!). La cosa buona del dover scrivere una guida è che vi aiuta a focalizzare sulle cose essenziali, e a fare mente locale su ciò che state facendo. <> <> <> <> <> <> <> <> 6. E’ il momento di installare e configurare servizi Ora dovrete installare: Apache, PHP, MySQL o PostgreSQL, un mail server (a vostra scelta), e infine un DNS server. Questi sono i servizi più importanti, e anche quelli sottoposti a più attacchi. In seguito potreste anche voler installare un filtro antispam, un server antivirus per la posta, il server di Java Tomcat, e altre cosine simpatiche. Per poter testare quanto funziona il vostro antispam, configurate un indirizzo di posta “sacrificale” (tipo spammatemi.tanto@ubuntista.it) e pubblicatelo in rete, nei forum, eccetera… in breve tempo vi ritroverete sommersi di spam. <> <> <> <> <> <> <> <> 7. Inglese, inglese, inglese Che vi piaccia o no, l’inglese è fondamentale per un buon sistemista, dato che molta documentazione, e molte situazioni lo richiedono. Cercate di dedicare almeno un’oretta al giorno alla lingua inglese, sia scritta che parlata. Trovatevi un americano o un inglese che studia in Italia, e chiedetegli di fare “tandem“, ovvero di incontrarvi per praticare reciprocamente la lingua (questo sito può risultarvi utile: http://www.tandem-schools.com). Cominciate a guardare i vostri DVD in inglese (all’inizio coi sottotitoli), e fatevi prestare DVD per guardarli in inglese. Nel giro di pochi mesi i risultati saranno evidenti! Se poi volete andare in vacanza all’estero, pianificate un viaggio in un posto in cui si parla inglese, sarà un’ottima occasione per praticarla. <> <> <> <> <> <> <> <> 8. Mettiti al passo con le novità: Mailing list, blog, Feed Cerca di tenerti aggiornato e di calarti nel ruolo, iscrivendoti a Mailing List dedicate, seguendo regolarmente blog di amministratori di sistema, e utilizzando un lettore di feed RSS per organizzare in maniera sistematica la tua lettura. EVITA di tenere aperta la pagina dei feed e di consultarli ogni dieci minuti, ti faranno solo perdere tempo. Cerca invece di dedicare un momento della giornata per leggerli, e poi concentrati sui tuoi “task” principali. <> <> <> <> <> <> <> <> 9. Lega la tua esperienza ad una iniziativa, possibilmente “etica” Nei mesi il divertimento può facilmente lasciare il posto alla noia; per questo sarebbe bello se tutti i tuoi sforzi fossero dedicati ad un piccolo progetto “etico”, come per esempio gestire il server di una piccola scuola, o di un gruppo sociale. In questo modo avrai uno “stimolo” in più. Occhio a non scegliere qualcosa di troppo impegnativo; dovete essere in grado di dire “vado in ferie per due settimane” (a imparare l’inglese ovviamente :-D), oppure “per qualche giorno farò degli esperimenti, probabilmente qualcosa non funzionerà”. <> <> <> <> <> <> <> <> 10. E’ il momento del DNS. La gestione del DNS è un po’ ostica, e richiede una certa competenza. Studiatevi un po’ di documentazione, avvisate che “per qualche giorno farò degli esperimenti, probabilmente qualcosa non funzionerà” (vedi sopra), e mettetevi all’opera. A questo punto dovrete cambiare il Name Server del vostro dominio, e farlo puntare al vostro server. <> <> <> <> <> <> <> <> 11. Certificazione, o autocertificazione A questo punto avete le competenze necessarie, ma non potete DIMOSTRARLO! Ci sono due vie, reciprocamente compatibili: A. Cercarvi delle certificazioni e superare i relativi esami. Fate in modo di studiare bene per la certificazione, a volte è meglio non averne, piuttosto che essere certificati con un voto appena sufficiente. B. Coinvolgervi in un progetto VERO, magari la gestione dei server e della posta di un gruppetto di server utilizzato da una comunità open source. Non è facile trovare questo tipo di lavori, ma se vi proponete gratuitamente o ad un prezzo stracciato, questo tipo di esperienza sarà molto importante per voi, e brillerà nel vostro curriculum. Mi piace chiamare questo tipo di approccio Autocertificazione :-) <> <> <> <> <> <> <> <> 12. Sistemate il vostro curriculum Comunicare in maniera efficace le vostre competenze è fondamentale; per questo vi suggerisco di dedicare ALMENO 7-8 ore alla stesura del vostro curriculum; può essere utile, se avete anche altre competenze, creare un curriculum SPECIFICO come amministratori di sistema Linux, e un altro curriculum in cui evidenziate BENE anche le altre vostre competenze. Vi fornisco come esempio il mio curriculum in inglese; è un buon punto di partenza, anche se ci sono alcune cose da perfezionare. E’ tutto. Spero di esservi stato utile! http://ubuntista.wordpress.com/2007/08/21/come-diventare-sistemista-linux/#comment-16310 http://www.soft-land.org/faq/sysadmin http://catb.org/~esr/faqs/hacker-howto.html http://www.faqs.org/faqs/sysadmin-recovery/ http://slinux.altervista.org/