etckeeper en mode silenciós

Hi ha eines que quan les descobreixes et semblen genials. Aquest és el cas de etckeeper, una eina que permet mantenir el directori /etc sota un sistema de control de versions (VCS) com ara git, mercurial, bzr o darcs. Un dels seus avantatges principals és que guarda una còpia abans i després d’instal·lar paquets al sistema, de forma que és molt fàcil de veure els canvis que es produeixen a les configuracions. Un altre és que s’acostuma a executar diàriament una còpia dels canvis mitjançant un crontab i si hi ha canvis es mostren en el correu corresponent que envia el dimoni cron. D’aquesta manera si faig canvis al /etc i no els he desat, el cron s’encarregarà de fer-ho un cop al dia.

Però aquest darrer avantatge es pot convertir en un greu inconvenient si instal·leu etckeeper en un clúster relativament gran o si gestioneu molts servidors. Idealment, per cada canvi que es faci al /etc caldria executar després «etckeeper commit …» per tal de guardar els canvis al VCS. Per exemple,  després de canviar la contrasenya d’un usuari o d’afegir-ne un de nou. Però si us oblideu de fer-ho, l’endemà potser us trobeu més d’un centenar de correus amb els canvis de cada servidor.

Doncs bé, una opció és acceptar que només us interessa rebre missatges en cas que es produeixi un error i els canvis diaris que es facin silenciosament. La primera idea que se’ns podria ocórrer és canviar el crontab del etckeeper perquè enviés la sortida estàndard a /dev/null però resulta que «bzr commit» (per defecte, etckeeper a ubuntu tria bzr com a VCS) treu el seu informe per l’error estàndard! Com que redirigir també l’error estàndard a /dev/null sempre és una mala idea (si es produís un error no us n’assabentaríeu), cal buscar una altra estratègia. Afortunadament és possible canviar les opcions dels diferents VCS a la configuració i per al cas de bzr només cal posar això al fitxer /etc/etckeeper/etckeeper.conf:

BZR_COMMIT_OPTIONS="-q"

Amb el que cada cop estic més a prop de tenir menys correu a la bústia d’entrada 🙂

Reduir els correus de Bacula

El Bacula és un sistema de gestió de backups professional en programari lliure (també es pot contractar suport empresarial, si cal). En la configuració predeterminada és costum enviar un correu per cada treball que indiqui si ha finalitzat correctament o no. Però en un entorn amb una pila de servidors i diversos treballs per servidor, això implica rebre diàriament molts correus que habitualment indiquen que tot ha anat bé. En el meu cas, són entre 60-70 correus diaris.

Afortunadament, si hom disposa d’un sistema de monitoratge compatible amb Nagios, pot utilitzar un connector que examina els logs del bacula director per veure si s’ha produït algun error. Per tant, ja no cal seguir rebent aquest allau diari de correus que indiquen que els treballs han acabat bé. Per fer-ho només cal que canvieu la configuració dels Messages anomenats Standard al fitxer /etc/bacula/bacula-dir.conf i on posava «mail» hi poseu «mail on error»:

Messages {
  Name = Standard
  mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
  operatorcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r"
  mail on error = bacula@example.com = all, !skipped
  operator = bacula@example.com = mount
  console = all, !skipped, !saved
  append = "/var/lib/bacula/log" = all, !skipped
  catalog = all
}

Amb aquest canvi, tots els treballs que utilitzin els missatges estàndard passaran a enviar correus només en cas que es produeixi algun error. Però potser us interessa que els treballs de recuperació sí que notifiquin si han acabat bé i així podeu evitar d’estar pendents dels logs, oi? Doncs és ben fàcil també: només cal crear un nou tipus de missatge pels treballs de recuperació que tingui «mail» enlloc del «mail on error» i indicar-ho a la secció corresponent:

Job {
  Name = "RestoreFiles"
  Type = Restore
  Client = bacula-fd
  Storage = Tape
  FileSet = "Full Set"
  Pool = Default
  Messages = Restore
  Where = /tmp/bacula-restores
}

Messages {
  Name = Restore
  mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
  operatorcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r"
  mail = bacula@example.com = all, !skipped
  operator = bacula@example.com = mount
  console = all, !skipped, !saved
  append = "/var/lib/bacula/log" = all, !skipped
  catalog = all
}

Es tracta d’un petit canvi que pot augmentar significativament la productivitat d’un equip de sysadmins amb una pila de servidors dels quals es fan còpies de seguretat cada dia.

Impuls i fricció

L’abast de la trajectòria balística d’un projectil és una funció de la inèrcia obtinguda en l’impuls inicial i de la fricció del mitjà en el qual es desplaça. Doncs bé, hi ha qui utilitza aquesta relació entre impuls i fricció per explicar algunes característiques de l’enginyeria del programari i com reduir la fricció per a millorar la productivitat obtinguda per l’impuls.

En aquesta metàfora l’impuls és l’energia necessària per emprendre una tasca habitualment llarga i que requereix una certa creativitat o fins i tot un aprenentatge previ, com podria ser el cas d’un projecte de programari per a un desenvolupador o el disseny d’un entorn d’alta disponibilitat per a un administració de sistemes. Per contra, la fricció serien totes aquelles petites tasques rutinàries o les interrupcions del dia a dia, que són necessàries però ens trenquen la concentració i redueixen l’impuls. Curiosament, sembla que la forma més habitual d’enfocar aquest problema és justament la menys efectiva.

Per tal d’aconseguir una finestra de temps prou gran per a dedicar al projecte important que tinc entre mans, tinc la tendència a mirar de treure’m de sobre primer totes les petites tasques (llegir el correu pendent, atendre les interrupcions, resoldre les tasques més ràpides o rutinàries, etc.). Idealment, un cop enllestit hauria de poder-me dedicar amb tota l’energia al projecte que tinc entre mans però en realitat no és així perquè de tasques petites i interrupcions en sorgeixen constantment en el món de l’administració de sistemes. Aleshores és evident que la solució és enfocar-ho a la inversa: em cal dedicar principalment tota l’energia (l’impuls) als projectes i deixar de banda les tasques petites tasques i rutinàries (la fricció). Però això no és pas tan fàcil perquè aquestes altres tasques no es poden deixar de banda indefinidament, part de la meva feina és resoldre-les també (sobretot les que afecten directament els usuaris).

Finalment, després de llegir els articles que esmentava al principi, crec que per mi la millor solució és una combinació de treball en equip i d’establir un calendari amb finestres sense interrupcions en què poder dedicar el temps necessari a tirar endavant els projectes de la forma més productiva. El treball en parella permet centrar-se en els interessos comuns dels dos individus a tirar endavant un projecte i per tant evita les temptacions de tots dos de caure en les tasques de fricció (no té gaire sentit llegir el correu en parella, per exemple). A més a més, si sumeu un tercer individu que us faci d’escut de les interrupcions (atengui els usuaris, respongui al telèfon, etc.) durant la finestra de temps que heu fixat, ja teniu la fórmula ideal per a la productivitat.

Cyrus said: 554 5.6.0 Message contains NUL characters

Feia unes quantes setmanes que rebia un munt de correus de backscatter a postmaster que em portaven de corcoll. Els missatges indicaven que el nostre MDA (Cyrus IMAP 2.2) no acceptava els correus que havien arribat al MTA intern (Postfix 2.5.1) perquè contenien caràcters nuls:

<xxxxxxxx@[x.x.x.x]>: host x.x.x.x[/var/run/cyrus/socket/lmtp]
    said: 554 5.6.0 Message contains NUL characters (in reply
    to end of DATA command)

Primer vaig mirar si la versió de Sieve que ve amb Cyrus suporta les extensions per filtrar basant-se en el contingut del cos però no hi va haver sort (amb Cyrus 2.4 ja està suportat però a la 2.2 no). Així que buscant buscant vaig trobar un fil molt interessant de la discussió original l’any 2005, on s’anaven passant la culpa de Postfix a Cyrus i a l’inrevés, com en un partit de tennis, mentre invocaven la màxima aquella de «be liberal in what you accept and strict in what you send». Tot i que en principi en Wietse Venema va dir que no podia dedicar temps a implementar el filtre a Postfix, finalment el va poder incloure a la versió 2.3 i ara la solució és prou senzilla:

message_strip_characters = \0

Amb aquest petit canvi he deixat de rebre diàriament centenars de notificacions de postmaster d’aquest tipus que em feien perdre un munt de temps.

2012 serà el meu any d’automatització

Després d’una temporada aprenent i muntant eines com Puppet i FAI a la feina, veient el panorama que dibuixa Ubuntu amb l’Orchestra, el Juju i el nou projecte MaaS, segurament el propòsit més important que m’he fet per aquest 2012 és el d’automatitzar tot el que pugui per evitar perdre temps en tasques repetitives i mecàniques, tal com apunta en Tom Limoncelli al seu llibre sobre gestió de temps per a administradors de sistemes.

En aquest sentit, un bon indicador de coses a automatitzar són els correus que rebo diàriament sobre els backups, els crons i les notificacions de postmaster. He decidit que com que no puc ignorar-los i mentre els segueixi rebent continuaré perdent molt de temps processant-los cada dia, el meu objectiu serà deixar-los de rebre; preferiblement perquè hauré pogut automatitzar algun procediment, simplificar alguna tasca o emmagatzemar alguna sortida, etc. Si per algun motiu no ho puc aconseguir, no em quedarà altre remei que delegar aquesta feina, que en el fons és una de les solucions que proposen tant en David Allen com en Tom Limoncelli.

Primera trobada pre-Drumbeat a Barcelona

Ens trobem ja a menys de tres setmanes del Festival Drumbeat, una trobada internacional al voltant de l’aprenentatge i la xarxa oberta, que tindrà lloc a Barcelona del 3 al 5 de novembre.

Com ja hem anunciat fa uns dies, des del comitè local de l’organització creiem que és una oportunitat inigualable per a mostrar i treballar en projectes locals, que tindran ocasió de donar-se a conèixer i contactar amb altres iniciatives semblants d’arreu del món.

Aquest diumenge 17 ens trobarem per a seguir definint el programa i convidem a venir-hi tothom interessat a conèixer millor el Drumbeat, què es prepara per a aquells dies i com proposar-hi activitats; encara sou a temps, però cal córrer 🙂

Cap a les 17:00 també s’hi servirà un berenar!

  • On? Galeria Cosmo. Com arribar-hi.
  • Quan? Aquest diumenge dia 17, a partir de les 16:00 i al llarg de tota la tarda.

FOSDEM 2010

Suposo que un dels avantatges d’escriure sobre un esdeveniment que va ocórrer fa gairebé 3 mesos és que hom recorda els detalls més significatius i per tant si ho ha d’explicar a algú altre tot queda molt més resumit. En Rafael em va demanar un apunt i encara l’hi dec, així que endavant les atxes…

Divendres

A la terminal 1 de l’aeroport de Barcelona ens vam trobar en Toni, l’Alina, l’Edu i l’Albert de can Mozilla.cat i poc després en David, en Víctor i en Jose Luís de Tuxbrain. Era prou evident que hi havia força viatgers a l’avió que anaven cap a la FOSDEM 2010, la trobada europea de desenvolupadors de programari lliure, però també hi havia una pila de viatgers que hi anaven només per feina o turisme.

Nosaltres, fet i fet, fèiem un grup ben maco: P1010830

Un cop arribats a Brusel·les ens vam separar, a la cerca de l’hotel. Nosaltres ens vam perdre una mica però després de preguntar com arribar-hi amb el meu francès rovellat, l’ajuda inestimable d’un mapa i d’un turista gallec que parlava català i passava per allí curiosament, vam fer cap a l’hotel. Ens hi vam instal·lar i vam anar de pet cap al metro amb la intenció de visitar l’atòmium. No vam trobar ningú a la guixeta per informar-nos de com anava el tema dels bitllets i tampoc hi havia un control gaire rigorós per accedir a les andanes (i.e. ens hauríem pogut colar molt fàcilment) però vam fixar-nos una mica en el que feien els locals i vam provar sort en una de les màquines expenedores. Feia un dia plujós i el paisatge vist des de l’atòmium no era tan maco com al maig (o això no parava de repetir una turista espanyola que teníem al costat) però va estar prou bé. Vam tornar cap al centre i vam buscar un lloc per dinar i fer un bon coixí per l’esdeveniment cerveser previst a la nit al Delirium Café. Vés per on m’hi vaig trobar entre tanta gent en Jeroen, un antic company del DAC. Un bon fart de cervesa de tots colors i gustos i cap al llit.

Dissabte

L’endemà començava la FOSDEM de debò, era el primer cop que hi anava i tenia un interès especial en fer-ho perquè s’havia organitzat una parada de Perl i perquè esperava trobar-me força coneguts de diferents àmbits i projectes en què estic implicat d’una manera o altra. Vam sortir d’hora de l’hotel per agafar el bus que ens duia cap a la ULB. Poc a poc el bus s’anava omplint de gent que també anava cap allà. La previsió d’assistència d’aquest any era d’unes 5000 persones, tot i que no se saben els números exactes perquè el registre és voluntari. Vam arribar i hi havia tot de gent muntant parades però no trobàvem la de Perl i es feia l’hora de començar així que vam fer via cap a la sala principal. Quina gentada! Els organitzadors van explicar l’evolució de la FOSDEM i al final van animar al públic a baixar a l’escenari i fer el ball tradicional de l’esdeveniment. Bona manera de començar. A continuació, un ponent soporífer va desanimar tothom de la sala explicant com promouen les metodologies de programari lliure a la seva empresa, però per sort el següent ponent va despertar-nos amb els mals d’internet. Després tocava fer cua al carrer per dinar i ens vam trobar amb en Carles, que passava per allà. Vam tornar cap a la sala principal per conèixer de prop el que fa el nostre sistema, però no em va acabar de fer el pes. Acte seguit, me’n vaig anar a veure la xerrada llampec d’en David sobre el Ben Nanonote, un projecte de maquinari lliure molt interessant. Malauradament no vam poder entrar a la sala de Mozilla per les xerrades de l’HTML5 i el Weave perquè la sala està a rebentar de gent. Vam fer un volt per la resta de sales i vam acostar-nos a la parada de Perl per saludar el personal. En aquest punt vam decidir tornar cap al centre i fer una mica de turisme per la ciutat.

Diumenge

Al matí vam fer una mica el ronso i vam agafar l’autobús una mica més tard i es va notar perquè ja anava farcit de gent cap a la FOSDEM. Jo me’n vaig anar a veure directament com empaquetar paquets de Perl i un sistema de gestió de configuracions fet en Perl. En acabat vaig passar per la sala principal on parlaven del projecte Tor (serà molt important ben aviat si perdem la neutralitat de la xarxa) i vam anar cap a la parada de Perl per estar-nos-hi una estoneta. Allí ens vam trobar l’Esteve.

A la parada de Perl fent proselitisme: Brusel·les - FOSDEM 2010

Ens vam acomiadar del FOSDEM i quan ja marxàvem vaig trobar-me en Georg. De nou al centre, vam anar a dinar els típics musclos amb patates fregides. Vam tornar a l’hotel a recollir les maletes, vam fer un bon passeig per la ciutat i vam anar cap a l’estació de tren on ens vam trobar altre cop i per sorpresa amb tota la colla. Vam fer cap a l’aeroport i cap a casa amb un bon record de l’estada. Segurament hi tornarem 🙂

Ubuntu Server usability papercuts

Fa algun temps es va crear el projecte One Hundred Papercuts per a resoldre petits detalls d’usabilitat que afecten a l’escriptori d’Ubuntu. La iniciativa va tenir força èxit i s’està repetint en d’altres contextos.

Segueixo de prop les reunions de l’equip d’Ubuntu per a servidors i ja fa dies que s’està parlant de dur a terme una iniciativa similar per als paquets que gestiona aquest equip: Server usability papercuts. La idea és millorar alguns petits aspectes de les instal·lacions en servidors. El tipus de millores van des de canviar els valors predeterminats per d’altres de més adients, descriure millor les dependències o recomanacions entre paquets, resoldre petits inconvenients en les actualitzacions, etc.

Com podeu ajudar?

Com que en principi aquests papercuts només poden ser coses molt senzilles de resoldre, una manera de col·laborar seria fer-se càrrec del problema i així aprendre els conceptes bàsics sobre els paquets d’Ubuntu i la resolució d’errors, amb l’ajuda de l’equip d’Ubuntu per a servidors, és clar. Però si no disposeu de prou temps i coneixeu alguna d’aquestes coses que us farien la vida més fàcil als vostres servidors o que us estalviarien un maldecap cada vegada que actualitzeu el sistema, podeu nominar l’error afegint una tasca per al projecte Ubuntu Server papercuts.

Vegeu l’anunci original al blog de l’equip d’Ubuntu per a servidors per a més detalls.

Qualitat, competitivitat i responsabilitat en els resultats

Avui he llegit el paràgraf que reprodueixo a continuació i no he pogut evitar de pensar en el que comentava l’Orestes sobre els ja famosos portàtils per a l’educació dels infants.

Fa mesos la consultora McKinsey, veient que hi havia uns quants governs que començaven a estar una mica mosques perquè en el rànquing de països amb el millor sistema educatiu sempre repetien els mateixos, va fer un estudi per veure si podia treure’n l’entrellat. Per què els ben situats eren sempre Finlàndia, Corea, Singapur, Hong Kong, Canadà, etc.? Què tenien en comú? L’estudi va concloure que només tres coses. Primera: seleccionaven els mestres entre els més ben qualificats de cada ram —és a dir, qualitat—. Segona: els mestres feien formació contínua, se’ls avaluava i si convenia se’ls podia fer fora —és a dir, competitivitat—. Tercera: quan un alumne es torçava, el mestre corresponent li dedicava un sobreesforç que podia arribar al 20% d’hores extres —és a dir, responsabilitat en els resultats. El que tenien en comú tots aquests països capdavanters en educació no eren ni mestres més ben pagats ni infraestructures més bones. La conclusió era simple: cap sistema educatiu pot tenir una qualitat superior a la dels seus mestres. Hi ha altres aspectes importants, sí senyor. Però vénen després.

El paràgraf l’he copiat literalment de les pàgines 70-71 del llibre La dictadura de la incompetència d’en Xavier Roig, editat per La Campana, que fa alguns dies que llegeixo. Crec que el vaig sentir anomenar al programa Àgora de TV3 o potser era el Mil·lènium, però vaig decidir que l’havia de llegir i me’l vaig regalar per Sant Jordi.

Tot i que treballo per a una universitat pública i se’m podria considerar un funcionari (estrictament parlant sóc personal laboral), estic d’acord amb en Xavier que el model actual de funcionariat no és sostenible i ens està passant factura; a llarg termini, fins i tot ens passarà factura als funcionaris.

Dia 5 a la UDS Karmic

El divendres 29 de maig va ser el darrer dia de la UDS. Es notava que després d’una setmana força esgotadora, hi havia ganes d’anar plegant i alguns dels assistents estrangers ja havien marxat cap a casa. D’altres es van quedar alguns dies més.

Sessions de matí

Em llevo una mica tard i em perdo dues sessions interessants sobre computació en núvol: clústers en núvols i gestió d’energia dels núvols (tots dos m’interessaven per la feina, però què hi farem). Aleshores em trobo amb l’Esteve, que ha vingut amb el seu cap per presentar el producte que estan desenvolupant a la sessió d’investigació de tecnologies en núvol prometedores. Realment hi ha molt de moviment al voltant dels núvols, és cert que també hi ha molt de fum però no es pot negar que també n’estan sortint idees molt interessants i engrescadores.

Dinar

Mentre estava a l’anterior sessió, en Chris em pregunta si podem dinar plegats. Anem cap al bufet amb l’Esteve, en Pau i el seu amic del dia anterior. L’Esteve s’ajunta amb el seu cap i altres persones (suposo que per seguir parlant de feina) i jo em trobo en Chris i seiem en una taula amb l’Efraín. Quan arriben el Pau i l’amic, la taula ja s’ha omplert i han de buscar un altre lloc (em sap greu). Li pregunto a l’Efraín sobre el sopar dels LoCo que es va improvitzar la nit de dimecres i del que cap membre de l’equip local es va assabentar, va ser mala sort perquè en Siegfried tampoc sabia que era un sopar dels LoCo, tot i haver-hi anat! Més tard, en Chris em pregunta si algun membre de l’equip pot deixar-li un lloc on dormir la nit de dissabte perquè ha d’agafar el vol el diumenge de matinada i no té cap habitació reservada. Mentre l’acompanyo a l’habitació de l’hotel a buscar el carregador del portàtil li dic que es pot quedar a casa, si no troba res millor (no és que tingui gaire espai a casa per tenir-hi convidats).

Plenàries

A la primera sessió plenària es fa un repàs dels canvis que s’han incorporat al portal de pluja d’idees per a Ubuntu. Tot seguit ens ensenyen l’eina per a enviar informes d’error, ubuntu-bug. A continuació veiem una demostració ràpida de les novetats que incorpora la KDE 4.3, que en principi durà la karmic. I finalment, la darrera sessió parla d’Eucalyptus i de com es pot usar per a muntar-se un núvol propi per a ús privat (o públic).

Sessions de tarda

Em salta la primera sessió de la tarda, però no em vull perdre la següent. L’han mogut 3 o 4 cops, no només de sala i d’hora sinó també de dia (pel que sembla hi ha molta gent interessada en el tema): integració de Puppet a Ubuntu. Puppet és un gestor de configuracions molt popular que permet dur el control de configuració de centenars d’equips d’una manera centralitzada. Per acabar, a la darrera sessió del dia es tracta de fer repàs de les coses positives i negatives de la trobada. Hi ha força coses positives i algunes de negatives (potser les que més destaqun és la mala qualitat de la wifi i el fred de les sales degut a l’aire condicionat).

Fotografies

A la sortida tothom comença a plegar i a recollir el material. Vaig a parlar amb la Maria sobre els CD que sobren (confirmem que són unes 2 capses grans i alguna de petita, per tant em caldrà un vehicle) i acordem que me’ls deixaran a la consergeria de l’hotel per tal que els passi a recollir. Aleshores en tornem a trobar amb en Pau, el seu amic i una sorpresa de darrera hora, en David. Duu la càmera i li dic en conya que si no s’afanya no podrà fer-se la foto amb en Mark, que se’n va cap a l’hotel carregat amb el portàtil a les mans. En David comença a córrer perseguint en Mark i jo al darrera per fer-li la foto. En David aconsegueix aturar en Mark al jardí del palau de congressos i com que hi ha molta gent, al final ens fem una foto tots junts. Aprofito per preguntar-li a en Mark qui va decidir de venir a Barcelona i em diu que és cosa de la Claire. Tornem a entrar al palau i ara empaitem en Jono, ja que en Pau vol fer-se una foto amb ell.

Podeu veure’n el resultat a l’àlbum d’en David i trobareu moltes més fotos a can Flickr cercant l’etiqueta uds-karmic.

Karaoke

Durant la preparació de la UDS, una de les coses que ens van demanar a l’equip local va ser que busquéssim un local on fer una petita festa el divendres a la nit. Després de mirar i remirar diverses opcions, al final es va triar la que m’havia suggerit una companya de la universitat (gràcies Isa!), la Discoteca Nick al barri de les Corts.

La festa comença a les 8 del vespre fins a mitjanit i hi ha beguda i pica-pica gratis fins a 2 quarts de 10, moment a partir del qual va comença el karoke. Mentrestant ens trobem de nou amb els de l’equip local i anem xerrant amb alguns dels presents: en Chris, l’Steve, l’Alex, en Martin… Quan la cosa s’anima i comença el karaoke, anem escalfant la gargamella. En Pau està molt animat i vol sortir a cantar el que sigui, però cap als volts de les 10 decideixo marxar perquè estic molt cansat i no estic gaire fi de la panxa (tant de menjar de bufet sembla que m’ha passat factura). M’acomiado d’en Nick i en Jorge a la porta de la discoteca i tiro cap a casa una mica trist perquè ja s’ha acabat.

No us perdeu els vídeos que van enregistrar alguns dels assistents.