Los administradores de sistema (o BOFH), son esas personas que creemos que no hacen nada pero son los responsables de mantener toda la arquitectura e infraestructura de las organizaciones. La herramienta por defecto para los sysadmins es Bash, pero Python también es para ellos.
Y es que Python puede ser tan poderoso como _Bash_ pero con la ventaja de poseer funciones de alto nivel que harán de tus jornadas de scripting para servidores un paseo por la pradera. Eso y la suave curva de aprendizaje hacen que Python se convierta en una opción ideal también para los administradores de sistemas. Pensando en esto, Jason McVetta ha creado el sitio Python for System Adminstrators con notas relevantes y una serie de herramientas útiles para esos menesteres.
Python para administradores de sistema está dirigido a personas que tengan sólidos conocimientos de administración de sistemas Unix/Posix, que se sientan cómodos con la línea de comandos y que entiendan como funcionan las redes y herramientas como SSH. También recomiendan tener un conocimiento mínimo de Python, sobre todo para entender la sintaxis de los comandos y tareas que se ejecutan pero es algo que puede solucionarse con un tutorial básico de fin de semana.
Lo que conseguirás
En las notas podrás encontrar cómo instalar y manejar paquetes de Python usando el gestor pip y hasta cómo mantener ambientes virtuales de Python aislados del resto del sistema. Quizás te preguntes: ¿Y para qué necesito ambientes virtuales? Pues si eres sysadmin debes saber lo doloroso que puede llegar a ser instalar varias versiones de un mismo paquete en el sistema; para esos casos los ambientes de Python son una maravilla porque te permiten hacer y deshacer con tus paquetes sin que tu instalación real se entere.
Otro punto que resulta increíblemente útil para los sysadmins es el poder ejecutar tareas remotas vía SSH y en las notas existe un apartado dedicado exclusivamente a esto. Las notas explican cómo realizar estas tareas usando Python puro (subprocess) y cómo hacerlo con Fabric, un paquete orientado a proporcionar un conjunto de métodos simples para operaciones locales o remotas como descargas, ejecución remota, captura de entrada de usuario, entre otras. Resulta muy conveniente para tareas de despliegue de aplicaciones y puesta a punto de servicios.
Algo que no podemos dejar fuera cuando se desarrollan scripts para administración de sistemas, incluso cuando se programa cualquier aplicación, es la depuración. Quizás es por esto que las notas también incluyen un apartado especialmente dedicado a las técnicas y herramientas más comunes para lograrlo. Tanto el viejo y archiutilizado print hasta el Python Debugger (pdb), son algunas de las que encontrarán en este punto. También dan algunos consejos sobre Git, Eclipse, JSON y hasta explican brevemente qué son y cómo funcionan las APIs REST.
El código fuente de las notas está disponible en Github, así que si deseas ser un buen samaritano puedes contribuir con su causa. Para aquellos que quieran descargarlo también tenemos noticias porque está disponible en formato PDF y ePub. El sitio de Jason es aún un trabajo en progreso, pero no cabe duda de que es una gran referencia para todos los que día a día administran sistemas y usan o desean usar Python como herramienta.