{"id":1119,"date":"2013-06-17T03:21:58","date_gmt":"2013-06-17T01:21:58","guid":{"rendered":"http:\/\/blog.mageia.org\/es\/?p=1119"},"modified":"2013-06-17T19:12:06","modified_gmt":"2013-06-17T17:12:06","slug":"los-que-hacen-mageia-equipo-sysadmin-instalacion-y-configuracion-de-software-en-los-servidores-de-mageia","status":"publish","type":"post","link":"https:\/\/blog.mageia.org\/es\/2013\/06\/17\/los-que-hacen-mageia-equipo-sysadmin-instalacion-y-configuracion-de-software-en-los-servidores-de-mageia\/","title":{"rendered":"Los que hacen Mageia \u2013 equipo Sysadmin : Instalaci\u00f3n y configuraci\u00f3n de software en los servidores de Mageia"},"content":{"rendered":"<p>En el proyecto Mageia el equipo <a href=\"https:\/\/wiki.mageia.org\/en\/Sysadmin_Team\">sysadmin<\/a> es responsable de la configuraci\u00f3n y mantenimiento de toda la infraestructura de Mageia, para usuarios y contribuidores por igual. Para ayudar a entender lo que hace este equipo y compartir algunas ideas con otros administradores de sistemas, publicaremos una serie de art\u00edculos para explicar las cosas que hacemos.<\/p>\n<p>Nuestras tareas principales son :<\/p>\n<ul>\n<li>Instalaci\u00f3n de servidores en el centro de datos<\/li>\n<li>Instalaci\u00f3n y configuraci\u00f3n de software en los servidores de Mageia<\/li>\n<li>Varias tareas administrativas como actualizar permisos de usuario, eliminar paquetes, mover paquetes entre repositorios, etc.<\/li>\n<li>Desarrollo y mantenimiento de varias herramientas, como los componentes del sistema de construcci\u00f3n<\/li>\n<\/ul>\n<p>Este primer articulo hablara sobre la instalaci\u00f3n y configuraci\u00f3n del software en los servidores de Mageia, explicara algunas de las cosas que hacemos, y el por que podr\u00eda querer usar un proceso similar cuando administre sus propios servidores.<\/p>\n<p>Un resumen del proceso utilizado para configurar software en los servidores de Mageia ser\u00eda:<\/p>\n<ul>\n<li>Todo software se instala usando paquetes<\/li>\n<li>Todos los paquetes son creados en nuestro sistema de construcci\u00f3n<\/li>\n<li>Todos los paquetes son instalados y configurados usando <a title=\"puppet\" href=\"http:\/\/es.wikipedia.org\/wiki\/Puppet_%28software%29\">puppet<\/a><\/li>\n<\/ul>\n<p>Los motivos para hacer esto puede ser obvio para muchos de los empaquetadores de Mageia. Este articulo intentara explicarlo para todos aunque no sean empaquetadores.<\/p>\n<h2>Construyendo e instalando el software<\/h2>\n<p>Una de las tareas mas comunes del administrador de sistemas es la instalaci\u00f3n o actualizaci\u00f3n de software. Es f\u00e1cil cuando su distribuci\u00f3n Linux proporciona paquetes para el software que quiere usar; el paquete puede instalarse usando el administrador de paquetes.<\/p>\n<p>Sin embargo, en muchos casos el software que necesita no est\u00e1 disponible en la distribuci\u00f3n que est\u00e1 usando o no es la versi\u00f3n que requiere.<\/p>\n<h3>Compilando manualmente<\/h3>\n<p>Mucha gente piensa que la soluci\u00f3n m\u00e1s f\u00e1cil en este caso es descargar el c\u00f3digo fuente del software, seguir las instrucciones de compilaci\u00f3n y ejecutar el script de instalaci\u00f3n o Makefile proporcionado. Sin embargo hay muchos problemas al hacer esto:<\/p>\n<ul>\n<li><strong>Instalar dependencias para compilar<\/strong>:<br \/>\n\tNecesita tener todas las dependencias para compilar instaladas en su sistema. En muchos casos querr\u00e1 compilar el software en un servidor dedicado para evitar instalar demasiadas dependencias en su equipo, y posteriormente copiar los binarios resultantes a sus equipos.<\/li>\n<li><strong>Administrando dependencias<\/strong>:<br \/>\nSi est\u00e1 usando tarballs o un servidor NFS para distribuir su software binario a otros equipos, necesitara encontrar e instalar las dependencias requeridas en cada equipo en el que el software sera usado. Querr\u00e1 escribir la lista de dependencias en alg\u00fan lugar para saber lo que se necesita instalar cuando necesita usar ese software en un equipo nuevo.<\/li>\n<li><strong>Actualizar software<\/strong>:<br \/>\nCuando compila software, es frecuente establecer opciones especificas al script configure o en un archivo de configuraci\u00f3n. Alg\u00fan software puede ser dif\u00edcil de compilar o requiere de complejas operaciones o configuraciones para poder hacerlo. Al actualizar el software a una nueva versi\u00f3n, probablemente quiera mantener la misma configuraci\u00f3n para evitar introducir cambios innecesarios que podr\u00edan causar fallos. Todo esto es dif\u00edcil de recordar y a menos que lo haga diario probablemente lo olvidara. Por lo que deseara guardar las instrucciones de compilaci\u00f3n para poder reutilizarlas la pr\u00f3xima vez que actualice este software.<\/li>\n<li><strong>Parchar el software<\/strong>:<br \/>\nA veces el software requiere algunas peque\u00f1as modificaciones para compilarlo o ejecutarlo, o quiere alguna nueva caracter\u00edstica. Puede aplicar los cambios antes de iniciar el proceso de compilaci\u00f3n. Sin embargo esos cambios se perder\u00e1n la siguiente ocasi\u00f3n en que extraiga las fuentes de un nuevo tarball para actualizar el software.<br \/>\nPara poder aplicar los mismos cambios en la nuevas versiones, deber\u00e1 guardar esos cambios como un parche en alg\u00fan lugar.<\/li>\n<li><strong>Llevar un registro<\/strong>:<br \/>\nEs f\u00e1cil olvidar por que hizo alg\u00fan cambio o actualizo una pieza de software en particular. Especialmente si no est\u00e1 solo y trabaja dentro de un equipo, deber\u00e1 llevar un registro de los cambios que realice en el software que compila e instala.<\/li>\n<li><strong>Saber que versi\u00f3n de su software est\u00e1 instalada, desinstalar o actualizar software<\/strong>:<br \/>\nEs muy \u00fatil saber la versi\u00f3n actualmente instalada de un software. Tambi\u00e9n es muy \u00fatil poder desinstalar software, o instalar una versi\u00f3n diferente para evaluar , depurar o revertir a una versi\u00f3n previa si hay alg\u00fan problema. Si utiliza el proceso est\u00e1ndar de instalaci\u00f3n, mucho software instalara archivos en varios lugares distintos en el sistema. Saber que archivos y en donde son instalados, y que versi\u00f3n est\u00e1 en uso es dif\u00edcil si no imposible. Cuando instala una nueva versi\u00f3n de software, los script de instalaci\u00f3n sobreescribir\u00e1n los viejos archivos, pero no eliminaran los obsoletos, lo que puede causar confusi\u00f3n o problemas. Algunos evitan estos problemas instalando cada software en su propio directorio, incluyendo el numero de versi\u00f3n en el nombre de directorio. Sin embargo, esto puede crear otros problemas: mucho software no est\u00e1 preparado para instalarse de est\u00e1 forma y requiere de complejos trucos para funcionar. Y la selecci\u00f3n de la versi\u00f3n que sera usada necesita de complejos enlaces simb\u00f3licos o actualizaciones de la variable de entorno PATH. Esto se hace aun m\u00e1s complicado cuando instala varias aplicaciones con dependencias entre ellas. Para evitar este tipo de problemas la mejor soluci\u00f3n es usar algunas herramientas que rastree el lugar y la versi\u00f3n de los archivos instalados.<\/li>\n<\/ul>\n<h3>Usando paquetes<\/h3>\n<p>Para resolver todos esos problemas deber\u00e1 usar herramientas especificas. Tal vez quiera comenzar a escribir sus propias herramientas y scripts para manejar ese tipo de cosas. Tiene m\u00e1s sentido usar las herramienta ya disponibles que usar las suyas propias. Las mejores herramientas para solucionar este tipo de problemas son los administradores de paquetes.<\/p>\n<p>Si anteriormente no ha creado paquetes, necesitara invertir algo de tiempo en aprender a hacerlo. Sin embargo esto le puede ahorrar un mont\u00f3n de tiempo posteriormente. Usar paquetes para compilar e instalar software tiene muchas ventajas:<\/p>\n<ul>\n<li><strong>Instalar dependencias de compilaci\u00f3n<\/strong>:<br \/>\nLos paquetes le permiten compilar su software en una maquina dedicada, producir paquetes que ser\u00e1n instalados en el equipo requerido sin tener que instalar ninguna de las dependencias de compilaci\u00f3n.<br \/>\nEl paquete fuente tambi\u00e9n le permite definir la lista de dependencias de compilaci\u00f3n, as\u00ed podr\u00e1 instalarlas autom\u00e1ticamente en su equipo cuando quiera compilar un paquete y tal vez quitarlas posteriormente.<\/li>\n<li><strong>Manejo manual de dependencias<\/strong>:<br \/>\nEl seguimiento de dependencias consume tiempo y no siempre es f\u00e1cil. Afortunadamente muchos de las sistemas de empaquetado analizaran los archivos incluidos en el paquete y detectaran autom\u00e1ticamente las dependencias del software. Las librer\u00edas de perl, python, ruby, PHP, C\/C++ usualmente se detectan autom\u00e1ticamente durante la construcci\u00f3n del paquete. Para las dependencias que no puedan ser detectadas autom\u00e1ticamente es posible definirlas expl\u00edcitamente en el paquete. Entonces todas esas dependencias podr\u00e1n ser autom\u00e1ticamente instaladas por el administrador de paquetes al instalar el software.<\/li>\n<li><strong>Actualizar el software<\/strong>:<br \/>\nEl paquete fuente contiene las instrucciones de compilaci\u00f3n. El proceso para compilar el software a veces cambia un poco, pero la mayor\u00eda de las veces sera el mismo para todas las versiones del software. En ese caso actualizar un paquete es tan simple como actualizar el numero de versi\u00f3n en el paquete fuente y ejecutar el comando para construir el paquete. Recompilar el software con una opci\u00f3n diferente tambi\u00e9n puede hacerse f\u00e1cilmente.<\/li>\n<li><strong>Parchar el software<\/strong>:<br \/>\nLos paquetes fuente le permiten incluir parches que ser\u00e1n aplicados durante la construcci\u00f3n del paquete. Esto har\u00e1 m\u00e1s f\u00e1cil el seguimiento de los cambios que aplique al software. Cuando actualice el software a una nueva versi\u00f3n los mismos cambios pueden aplicarse f\u00e1cilmente.<\/li>\n<li><strong>Mantener un registro<\/strong>:<br \/>\nLos paquetes incluyen un registro que puede usar para explicar las razones de sus cambios, as\u00ed usted u otro miembro podr\u00e1n saber el por que realizo un cambio hace 6 meses. Si utiliza una herramienta de control de fuentes como git o subversion para administrar sus paquetes (lo recomendamos), puede usar el registro de env\u00edos para este fin.<\/li>\n<li><strong>Saber que versi\u00f3n de su software est\u00e1 instalada, desinstalar o actualizar software<\/strong>:<br \/>\nLos paquetes le permiten rastrear la versi\u00f3n del software instalado en su sistema. Tambi\u00e9n le permite facilitar la instalaci\u00f3n, eliminaci\u00f3n o actualizaci\u00f3n del software, o encontrar que paquete proporciona un archivo.<\/li>\n<\/ul>\n<h2>Construir paquetes en un ambiente limpio e implementar sus paquetes<\/h2>\n<h3>Por que deber\u00eda usar un sistema de construcci\u00f3n<\/h3>\n<p>El administrador de paquetes es una herramienta hermosa para administrar la construcci\u00f3n e instalaci\u00f3n de software. Sin embargo, esto no es suficiente. El administrador de paquetes compilara el software utilizando las herramientas y librer\u00edas disponibles en el sistema, tras instalar la lista de dependencias de compilaci\u00f3n.<\/p>\n<p>Hay algunos problemas con esto :<\/p>\n<ul>\n<li><strong>Soporte multi distribuci\u00f3n<\/strong>:<br \/>\nAlgunas veces su infraestructura constara de diferentes distribuciones, o diferentes versiones de la misma distribuci\u00f3n. Un paquete construido en una distribuci\u00f3n no necesariamente funcionara en otra, debido a que las versiones de algunos componentes son diferentes o incompatibles. Para evitar este tipo de problemas, los paquetes deben construirse en la misma distribuci\u00f3n en la que ser\u00e1n usados.<\/li>\n<li><strong>Limpiar el entorno<\/strong>:<br \/>\nLos paquetes fuente incluyen una lista de dependencias de compilaci\u00f3n que deber\u00e1n instalarse para construir el paquete. Sin embargo cuando construya el paquete en su sistema o en un servidor de construcci\u00f3n especifico, usualmente hay otros paquetes instalados que podr\u00edan utilizarse durante la construcci\u00f3n del paquete. Por lo tanto es muy f\u00e1cil olvidar que instalo alg\u00fan paquete,olvidar incluirlo en la lista de dependencias de compilaci\u00f3n y no notar el problema por que a usted le funciona. Su sistema tambi\u00e9n puede tener algunas configuraciones personalizadas o actualizaciones que olvido que hab\u00eda instalado, eso tambi\u00e9n puede impactar en la construcci\u00f3n del paquete. El problema no se notara hasta que alguien necesite reconstruir el paquete en otro sistema. Si quiere incrementar las oportunidades de poder reproducir la construcci\u00f3n de un paquete, debe utilizar un entrono limpio para construir paquetes. Usualmente esto se hace creando un entorno chroot m\u00ednimo para la distribuci\u00f3n seleccionada.<\/li>\n<\/ul>\n<p>Una vez que su paquete se ha construido, es necesario copiarlo a las maquinas en las que sera instalado.<\/p>\n<p>Las distribuciones usualmente proporcionan herramientas para hacer esto (apt-get en Debian, urpmi en Mageia, yum en Fedora, etc.). Estas herramientas autom\u00e1ticamente descargaran e instalaran un paquete y sus dependencias desde un servidor que comparta un repositorio de paquetes. Para poder usar estas herramientas, es necesario que configure un repositorio de paquetes, que es un directorio que contiene todos los paquetes disponibles y algunos meta datos.<\/p>\n<p>Todo esto puede administrarse manualmente,sin embargo es mejor configurar un sistema de construcci\u00f3n de paquetes que haga todo esto autom\u00e1ticamente. Usar un sistema de construcci\u00f3n de paquetes tiene muchas ventajas :<\/p>\n<ul>\n<li><strong>Menos propenso a errores<\/strong>:<br \/>\nConstruir los paquetes en un entorno chroot, copiar los archivos resultantes al repositorio correcto y regenerar los metadatos del repositorio no es muy dif\u00edcil, pero requiere tiempo y es propenso a errores si se hace manualmente. Usar un sistema autom\u00e1tico de construcci\u00f3n de paquetes le ahorrara tiempo y le evitara muchos errores.<\/li>\n<li><strong>Simplificando<\/strong>:<br \/>\nSi construir paquetes e instalarlos en el repositorio son tareas dif\u00edciles y tardadas, usted o los miembros de su equipo estar\u00e1n tentados a evitarlas y a usar otra soluci\u00f3n para realizarlas.<\/li>\n<li><strong>Herramientas de control de revisi\u00f3n y rastreabilidad<\/strong>:<br \/>\nSe recomienda usar herramientas de control de revisi\u00f3n como git o subversion para administrar los cambios en los paquetes fuente. Un <a href=\"http:\/\/es.wikipedia.org\/wiki\/Gesti%C3%B3n_de_configuraci%C3%B3n_de_software\" title=\"SCM\" target=\"_blank\">SCM<\/a> anclado al sistema de construcci\u00f3n se asegura que cualquier paquete disponible en los repositorios tambi\u00e9n se encuentre en el repositorio de control de fuentes, dando rastreabilidad a sus paquetes.<\/li>\n<li><strong>Vigilar las pol\u00edticas de empaquetado<\/strong>:<br \/>\nExisten algunas herramientas para vigilar algunas pol\u00edticas de empaquetado (rpmlint para rpm, lintian para deb). Tener pol\u00edticas de empaquetado es \u00fatil para tener paquetes consistentes. El sistema de construcci\u00f3n de paquetes puede ser configurado para ejecutar autom\u00e1ticamente algunas pruebas y rechazar la subida de paquetes que no cumplan las pol\u00edticas.<\/li>\n<li><strong>Monitorear<\/strong>:<br \/>\nEl sistema de construcci\u00f3n permite monitorear las ultimas compilaciones. Una interfaz web proporciona una vista de las ultimas compilaciones y registros de compilaci\u00f3n. Se puede utilizar una lista de correo para recibir notificaciones sobre las compilaciones. Cuando se trabaja en equipo, esto permite a los miembros del equipo seguir los \u00faltimos cambios.<\/li>\n<li><strong>Automatizaci\u00f3n<\/strong>:<br \/>\nAlgunos paquetes pueden requerir hacer tareas adicionales al ser actualizarlos. Enviar un correo electr\u00f3nico, extraer algunos archivos para actualizar un sitio web u otras tareas, pueden realizarse mediante scripts y por lo tanto realizarse autom\u00e1ticamente cuando se actualizan esos paquetes. Esto es lo que se hace cuando se extraen los archivos del instalador de Mageia en el servidor, al momento de actualizar el paquete.<\/li>\n<\/ul>\n<h3>Como instalar el Sistema de Construcci\u00f3n de Mageia<\/h3>\n<p>Esto sera tema de otro articulo.<\/p>\n<h2>Configurar el software<\/h2>\n<p>Instalar el software usualmente solo es la primer parte del trabajo hecho por los administradores de sistemas. La segunda parte es la configuraci\u00f3n de ese software. El paquete har\u00e1 la primer parte de la configuraci\u00f3n inicial, sin embargo, usualmente se requiere de configuraci\u00f3n adicional.<\/p>\n<p>Hay varias formas de hacerlo :<\/p>\n<ul>\n<li>Editar manualmente la configuraci\u00f3n directamente en cualquiera de sus servidores<\/li>\n<li> o hacer que una herramienta de manejo de configuraciones como Cfengine, Puppet o Ansible lo haga por usted.<\/li>\n<\/ul>\n<p>Cuando utiliza una herramienta de manejo de configuraciones, no se actualiza directamente la configuraci\u00f3n en sus servidores, se escriben algunas reglas en su repositorio de manejo de configuraciones, las cuales ser\u00e1n aplicadas autom\u00e1ticamente por su herramienta de manejo de configuraciones. Esto no es tan r\u00e1pido como editar directamente la configuraci\u00f3n en su servidor, pero tiene muchas ventajas:<\/p>\n<ul>\n<li><strong>Administrar su infraestructura como un proyecto de software<\/strong>:<br \/>\nLas herramientas de configuraci\u00f3n le permiten administrar su infraestructura de forma similar a cualquier otro proyecto de software. Muchas de las herramientas disponibles para los desarrolladores de software pueden utilizarse : control de revisiones, envi\u00f3 de parches, vista del c\u00f3digo, pruebas autom\u00e1ticas, etc.<\/li>\n<li><strong>Trabajo en equipo<\/strong>:<br \/>\nSi trabaja en un equipo, puede almacenar las reglas de configuraci\u00f3n de su servidor en un repositorio de control de revisiones com\u00fan, haciendo posible seguir y revisar todos los cambios hechos por los miembros del equipo en todos los servidores.<\/li>\n<li><strong>Documentaci\u00f3n<\/strong>:<br \/>\nTener alguna documentaci\u00f3n sobre que software est\u00e1 instalado en sus servidores y como est\u00e1 configurado, es muy \u00fatil, especialmente cuando m\u00e1s de una persona est\u00e1 trabajando en ellos. Sin embargo un problema muy com\u00fan con la documentaci\u00f3n es que alguien la escribe inicialmente, pero nadie la mantiene y r\u00e1pidamente queda anticuada. Es muy f\u00e1cil hacer un cambio y olvidar documentarlo, o olvidar que la documentaci\u00f3n existe y necesita ser actualizada. Pero tener una documentaci\u00f3n precisa es importante, y en ocasiones tener documentaci\u00f3n anticuada que proporciona informaci\u00f3n falsa puede ser peor que no tener documentaci\u00f3n. El repositorio de manejo de configuraciones puede usarse como un tipo de documentaci\u00f3n de su infraestructura, y sobre lo que realmente se usa para configurar su infraestructura, donde es m\u00e1s importante que la documentaci\u00f3n sea precisa. En el desarrollo de software, tener c\u00f3digo auto documentado que puede entenderse sin documentaci\u00f3n es en general mejor que tener que mantener separadamente la documentaci\u00f3n, y es igual en la administraci\u00f3n de sistemas.<\/li>\n<li><strong>Probar el entorno y reproducibilidad<\/strong>:<br \/>\nUtilizar una herramienta de configuraci\u00f3n le permite reproducir f\u00e1cilmente la configuraci\u00f3n de un servidor en otro servidor. Esto es util cuando tiene que reemplazar o a\u00f1adir un servidor, o si necesita configurar un entorno de prueba.<\/li>\n<li><strong>Mantener una configuraci\u00f3n correcta<\/strong>:<br \/>\nLa herramienta de manejo de configuraciones se ejecutara a intervalos regulares para revisar que la configuraci\u00f3n est\u00e1 correcta y aplicara cualquier cambio necesario.<\/li>\n<li><strong>Reusabilidad<\/strong>:<br \/>\nComo en el desarrollo de software, el uso de herramientas de manejo de configuraci\u00f3n le permite reutilizar componentes que ha creado. Usualmente es posible crear m\u00f3dulos con par\u00e1metros que cambien el entorno del modulo. A veces puede encontrar m\u00f3dulos preparados en el internet, pero desafortunadamente muchos de ellos requerir\u00e1n de importantes modificaciones para adaptarlos para su uso. Versiones anteriores de puppet carec\u00edan de caracter\u00edsticas importantes como clases parametrizadas, as\u00ed que crear componentes reutilizables era dif\u00edcil, pero eso ha cambiado.<\/li>\n<\/ul>\n<h3>\u00bfQue herramienta de manejo de configuraci\u00f3n usar?<\/h3>\n<p>Cuando comenzamos a configurar los servidores del proyecto Mageia, decidimos tras mirar las diferentes herramientas disponibles, usar <a href=\"http:\/\/puppetlabs.com\/\">puppet<\/a>. Puppet parec\u00eda la m\u00e1s interesante herramienta de manejo de configuraci\u00f3n en ese momento. En pocos a\u00f1os las cosas han evolucionado un mont\u00f3n en est\u00e1 \u00e1rea, y hay otras alternativas que tal vez quiera revisar antes de decidir cual quiere usar :<\/p>\n<ul>\n<li><a href=\"http:\/\/ansible.cc\/\">ansible<\/a><\/li>\n<li><a href=\"http:\/\/saltstack.com\/community\">salt stack<\/a><\/li>\n<\/ul>\n<h3>Los m\u00f3dulos puppet de Mageia<\/h3>\n<p>Los m\u00f3dulos puppet que usamos para configurar los servidores de Mageia est\u00e1n disponibles <a href=\"http:\/\/svnweb.mageia.org\/adm\/puppet\/\">en un repositorio svn<\/a>.<\/p>\n<h2>Lo que necesita mejorarse<\/h2>\n<p>El proceso actual es bueno, pero a\u00fan hay cosas que pueden mejorarse. Si quiere contribuir pero ignora que podr\u00eda ser de utilidad, aqu\u00ed hay algunas ideas.<\/p>\n<ul>\n<li><strong>Generaci\u00f3n autom\u00e1tica de paquetes<\/strong>:<br \/>\nAlgunos lenguajes como Perl, Python o Ruby proporcionan su propio sistema de empaquetamiento para sus librer\u00edas. A muchas personas les gusta usar esos paquetes en lugar de paquetes RPM debido a que no siempre hay paquetes disponibles en la distribuci\u00f3n o no est\u00e1n actualizados. La ventaja de de esos paquetes es que son hechos por el desarrollador y est\u00e1n disponibles inmediatamente. El problema es que usualmente no se integran muy bien en el resto del sistema y requieren utilizar dos diferentes sistemas de paquetes, lo que podr\u00eda complicar m\u00e1s las cosas. En muchos casos, las personas no son empaquetadores experimentados, por lo que simplemente utilizan los paquetes del lenguaje, por que piensan que empaquetar es muy complicado o no tienen tiempo de hacerlo. Si convertir esos paquetes a RPM fuera m\u00e1s simple, las personas se beneficiaran de una buena disponibilidad de paquetes bien integrados con el resto del sistema.<\/p>\n<p>Afortunadamente los paquetes de esos lenguajes usualmente contienen toda la informaci\u00f3n necesaria para empaquetarlos en RPM (descripciones, licencia, dependencias, etc.), as\u00ed que crear un paquete RPM es usualmente una simple conversi\u00f3n de esa informaci\u00f3n al formato RPM fy puede automatizarse. Gracias al trabajo de <a href=\"http:\/\/jquelin.blogspot.fr\/\">J\u00e9r\u00f4me Quelin<\/a> en <a href=\"https:\/\/github.com\/jquelin\/cpanplus-dist-mageia\">cpan2dist<\/a> es posible generar paquetes RPM para Mageia desde los m\u00f3dulos CPAN autom\u00e1ticamente. Esto es lo que nos permite tener disponibles <a href=\"http:\/\/perl.mageia.org\/stats\/\">3300 paquetes de Perl<\/a> en la distribuci\u00f3n.<br \/>\nNecesitamos herramientas similares para python, ruby y otros lenguajes.<\/li>\n<li><strong>Configuraci\u00f3n del Sistema de Construcci\u00f3n<\/strong>:<br \/>\nEstamos usando un sistema de construcci\u00f3n para nuestros paquetes por que ya ten\u00edamos disponible un sistema para construir la distribuci\u00f3n, as\u00ed que no es mucho trabajo configurarlo para tambi\u00e9n tener nuestro propio repositorio. Sin embargo instalar el sistema de construcci\u00f3n de Mageia no es una tarea f\u00e1cil y las personas que no hagan una distribuci\u00f3n completa no querr\u00e1n gastar demasiado tiempo configurando un sistema de construcci\u00f3n. As\u00ed que necesitamos mejorar el proceso de configuraci\u00f3n del sistema de construcci\u00f3n para hacerlo mas sencillo. Actualmente falta alguna documentaci\u00f3n que explique como hacerlo utilizando nuestro modulo puppet. Un futuro articulo del blog explicara como hacerlo.<\/li>\n<li><strong>Soporte de OBS<\/strong>:<br \/>\nOtra alternativa es utilizar <a href=\"http:\/\/openbuildservice.org\/\">OBS<\/a> (Open Build Service), que es un buen sistema de construcci\u00f3n con soporte para varias distribuciones. Sin embargo aun no tiene soporte para Mageia. Necesitamos corregir eso para que sea posible administrar los repositorios de Mageia mediante OBS.<\/li>\n<li><strong>Soporte a Mageia en Ansible y Salt Stack<\/strong>:<br \/>\nAnsible y Salt Stack son interesantes herramientas de manejo de configuraci\u00f3n. Sin embargo aun carecen de soporte a urpmi para la instalaci\u00f3n de paquetes.<br \/>\nActualizaci\u00f3n: <a href=\"https:\/\/github.com\/pmakowski\">Philippe Makowski<\/a> ha estado trabajando en un <a href=\"https:\/\/github.com\/pmakowski\/ansible\/blob\/devel\/library\/packaging\/urpm\">modulo de urpmi para Ansible<\/a>, pero aun no se integra oficialmente, y las contribuciones son bien recibidas.<\/li>\n<\/ul>\n<p>Traducci\u00f3n del <a href=\"http:\/\/blog.mageia.org\/en\/2013\/06\/06\/they-make-mageia-the-sysadmin-team-installation-and-configuration-of-software-on-mageia-servers\/\">art\u00edculo<\/a> escrito por <a href=\"http:\/\/blog.mageia.org\/en\/author\/boklm\/\">boklm<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En el proyecto Mageia el equipo sysadmin es responsable de la configuraci\u00f3n y mantenimiento de toda la infraestructura de Mageia, para usuarios y contribuidores por igual. Para ayudar a entender lo que hace este equipo y compartir algunas ideas con &hellip; <a href=\"https:\/\/blog.mageia.org\/es\/2013\/06\/17\/los-que-hacen-mageia-equipo-sysadmin-instalacion-y-configuracion-de-software-en-los-servidores-de-mageia\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[117,1,11],"tags":[],"class_list":["post-1119","post","type-post","status-publish","format-standard","hentry","category-mageia-2","category-sin-categoria","category-sysadmin"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p15llx-i3","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/posts\/1119","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/comments?post=1119"}],"version-history":[{"count":12,"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/posts\/1119\/revisions"}],"predecessor-version":[{"id":1130,"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/posts\/1119\/revisions\/1130"}],"wp:attachment":[{"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/media?parent=1119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/categories?post=1119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mageia.org\/es\/wp-json\/wp\/v2\/tags?post=1119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}