• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Gestión de configuración distribuída para la plataforma de Canaima
 

Gestión de configuración distribuída para la plataforma de Canaima

on

  • 755 views

Propuesta para la gestión de configuración distribuída para la plataforma de Canaima

Propuesta para la gestión de configuración distribuída para la plataforma de Canaima

Statistics

Views

Total Views
755
Views on SlideShare
755
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Gestión de configuración distribuída para la plataforma de Canaima Gestión de configuración distribuída para la plataforma de Canaima Presentation Transcript

    • VI Cayapa Canaima Barinas 2012Gestión de configuración distribuída para la plataforma de Canaima Ernesto Crespo @_seraph1
    • Agenda● Control de versiones centralizado vs distribuido● ¿Qué es Etckeeper?● ¿Qué es Mercurial?● Comandos básicos de mercurial● Etckeeper ● Instalación y configuración ● Iniciar etckeeper ● Primer commit ● Estatus y log ● Modificar archivo y reflejar cambios en el mercurial ● Ver diferencias de archivos, revisiones,revertir cambios. ● Subir a un repositorio central
    • Control de versiones centralizado vs distribuido
    • Sistemas de control de versiones● Centralizado ● CVS ● Subversion● Distribuido ● Mercurial ● Git ● Bazaar ● Darcs
    • Etckeeper● Colección de herramientas que permiten almacenar el directorio /etc en un repositorio de Control de versiones distribuído.● Refleja cambios automaticamente al final del proceso de instalación o actualización de paquetes por medio de dpkg,apt, rpm o yum.● Página del proyecto: http://kitenet.net/~joey/code/etckeeper/● Mantiene historicos de los archivos guardados en /etc para: ● Documentación: Los mensajes de log son adjuntados a los cambios de los archivos de configuración como documentación. ● Resolución de problemas: Permite recuperar configuraciones en /etc que se han borrado por error o dañado la configuración de un servicio.
    • Etckeeper● Mantiene historicos de los archivos guardados en /etc para: ● Documentación de la configuración: Los mensajes de log son adjuntados a los cambios de los archivos de configuración como documentación. ● Resolución de problemas: Permite recuperar configuraciones en /etc que se han borrado por error o dañado la configuración de un servicio.
    • Etckeeper● Maneja varios sistemas de control de versiones distribuídos como: ● Git ● Mercurial ● Bazaar ● Darcs● En la presentación se usa el sistema de control de versiones Mercurial
    • Mercurial● Sistema de control de versiones distribuido y multiplataforma, para desarrolladores de software.● Implementado principalmente en python.● Para acceder a repositorios usa ssh y/o http.● Se puede usar para controlar versiones de documentos, empaquetar para Debian, controlar versiones de archivos de configuración y desarrollo.
    • Comandos básicos de Mercurial● Listar comandos: hg● Clonar un repo: hg clone http://bitbucket.org/ecrespo/pyloro/● Ver log: hg log● Estatus del repositorio: hg status● Actualizar un repositorio: hg update● Commit: hg commit -m “Cambio de fecha”● Aplicar cambios: hg push http://bitbucket.org/ecrespo/pyloro/
    • Instalación y configuración● Instalación de etckeeper y mercurial apt-get install etckeeper mercurial● Configuración ● Modificar archivo /etc/etckeeper/etckeeper.conf – Descomentar VCS="hg" – Comentar el resto de los VCS. – Agregar la opción del usuario: HG_COMMIT_OPTIONS="-u ecrespo@gmail.com" ● Configurar Mercurial: Editar /etc/mercurial/hgrc – Agregar: [ui] username = ecrespo@gmail.com
    • Iniciar etckeeper● Borrar cualquier registro inicial de control de versiones anterior sobre el directorio /etc etckeeper uninit● Inicializar el control de versiones con mercurial para etckeeper etckeeper init adding xdg/xfce4/panel/systray-4.rc adding xdg/xfce4/panel/xfce4-menu-5.rc adding xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml adding xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml adding xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml adding xdg/xfce4/xinitrc adding xml/catalog adding xml/docbook-xml.xml adding xml/docbook-xsl.xml adding xml/rarian-compat.xml adding xml/sgml-data.xml adding xml/xml-core.xml
    • Primer commit etckeeper commit "Inicializacion del control de versiones"● Instalar un paquete Debian: apt-get install lighttpd adding lighttpd/conf-available/15-fastcgi-php.conf adding lighttpd/conf-available/90-debian-doc.conf adding lighttpd/conf-available/README adding lighttpd/lighttpd.conf adding logrotate.d/lighttpd adding rc0.d/K01lighttpd adding rc1.d/K01lighttpd adding rc2.d/S20lighttpd adding rc3.d/S20lighttpd adding rc4.d/S20lighttpd adding rc5.d/S20lighttpd adding rc6.d/K01lighttpd
    • Estatus y log● Estatus del directorio /etc/ hg status /etc/ M ../etc/.etckeeper● Log del directorio /etc/ hg log /etc/ changeset: 1:ba22869a3179 tag: tip user: ecrespo@gmail.com date: Wed Jul 27 22:02:27 2011 -0430 summary: committing changes in /etc after apt run changeset: 0:f2a3f337ecc0 user: ecrespo@gmail.com date: Wed Jul 27 21:54:21 2011 -0430 summary: Inicializacion del control de versiones
    • Modificar un archivo y reflejar cambio en el scv● Modificar archivo /etc/hosts, agregar un host:● Hacer commit: etckeeper commit "Se elimina el dominio del host jewel en /etc/hosts" /etc/hosts● Revisar log: hg log /etc/ changeset: 2:6efc1189bd8b tag: tip user: ecrespo@gmail.com date: Wed Jul 27 22:08:25 2011 -0430 summary: Se elimina el dominio del host jewel en /etc/hosts changeset: 1:ba22869a3179 user: ecrespo@gmail.com date: Wed Jul 27 22:02:27 2011 -0430 summary: committing changes in /etc after apt run changeset: 0:f2a3f337ecc0 user: ecrespo@gmail.com date: Wed Jul 27 21:54:21 2011 -0430 summary: Inicializacion del control de versiones
    • Ver diferencias en archivos● Diferencias en archivos del directorio /etc/: hg diff /etc/ diff -r 6efc1189bd8b hosts --- a/hosts Wed Jul 27 22:08:25 2011 -0430 +++ b/hosts Wed Jul 27 22:13:41 2011 -0430 @@ -1,6 +1,6 @@ 127.0.0.1 localhost 127.0.1.1 jewel jewel - +127.0.0.1 sofia sofia # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet● Al ejecutar el commit y volver a hacer el diff ya no se muestran cambios por que se subieron al repositorio: etckeeper commit "Agregado el nombre sofia al host 127.0.0.1 en el archivo /etc/hosts" /etc/hosts
    • Revisar log● Al ejecutar la visualización del log aparece el cambio del host: hg log /etc/ changeset: 3:452065708a7e tag: tip user: ecrespo@gmail.com date: Wed Jul 27 22:16:13 2011 -0430 summary: Agregado el nombre sofia al host 127.0.0.1 en el archivo /etc/hosts changeset: 2:6efc1189bd8b user: ecrespo@gmail.com date: Wed Jul 27 22:08:25 2011 -0430 summary: Se elimina pdvsa.com del host jewel en /etc/hosts changeset: 1:ba22869a3179 user: ecrespo@gmail.com date: Wed Jul 27 22:02:27 2011 -0430 summary: committing changes in /etc after apt run changeset: 0:f2a3f337ecc0 user: ecrespo@gmail.com date: Wed Jul 27 21:54:21 2011 -0430 summary: Inicializacion del control de versiones
    • Ver cambios entre revisiones● Ver cambios entre la revisión 1 y 2 de /etc/hosts: hg diff -r 1 -r 2 /etc/hosts diff -r ba22869a3179 -r 6efc1189bd8b hosts --- a/hosts Wed Jul 27 22:02:27 2011 -0430 +++ b/hosts Wed Jul 27 22:08:25 2011 -0430 @@ -1,5 +1,5 @@ 127.0.0.1 localhost -127.0.1.1 jewel.dst.pdvsa.com jewel +127.0.1.1 jewel jewel # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback
    • Revertir cambios● Revertir cambio de la versión 3 a la 2: hg revert -r 2 /etc/hosts● Archivo /etc/hosts final: 127.0.0.1 localhost 127.0.1.1 jewel jewel # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
    • Subir el repositorio de /etc a servidor central público (Bitbucket)● Subir a bitbucket: hg push https://bitbucket.org/ecrespo/configuracion-jewel http authorization required realm: Bitbucket.org HTTP user: ecrespo password: pushing to https://bitbucket.org/ecrespo/configuracion-jewel searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: added 4 changesets with 5764 changes to 5759 files remote: bb/acl: ecrespo is allowed. accepted payload.
    • Commits en Bitbucket
    • Archivos en bitbucket
    • Subir el repositorio a un servidor Centralizado de Mercurial por ssh● Es necesario instalar en el equipo servidor central: etckeeper, mercurial y ssh apt-get install etckeeper mercurial openssh-server● Configurar etckeeper y mercurial como se ha explicado● Iniciarlizar etckeeper: etckeeper init● Se realiza el primer commit: etckeeper commit “Inicialización del control de versiones”● Se crea la clave ssh y se copiará al servidor ssh: ssh-keygen -t rsa -C “ecrespo@gmail.com” -f ernesto-identity
    • Subir el repositorio a un servidor Centralizado de Mercurial por ssh● Se copia la clave pública al servidor ssh: scp hg-ernesto-identity.pub ernesto@IP-servidor:.ssh● Se accede al servidor● Se agrega la clave pública al archivo authorized_keys: cd .ssh cat hg-ernesto-identity.pub >> authorized_keys● En el equipo que accederá al servidor, se crea el archivo .ssh/config, se agrega el host, el usuario y la clave privada que se va a usar para la conexión ssh: host IP-servidor user ernesto IdentityFile ~/.ssh/hg-ernesto-identity
    • Subir el repositorio a un servidor Centralizado de Mercurial por ssh● Se verifica que se accede al servidor usando la llave pública: ssh IP-servidor -i ~/.ssh/hg-ernesto-identity -l ernesto● Se clona el directorio /etc al home del usuario (equipo del servidor): hg clone /etc/ conf-equipo-servidor● Se cambia el dueño y el grupo del repositorio recien clonado: chown -R ernesto.ernesto conf-equipo-servidor● Ahora se clona la configuración del servidor en el equipo cliente: hg clone ssh://ernesto@IP-servidor/repo/conf-equipo-servidor/● Las actualizaciones de los repositorios locales y remotos se pueden realizar de forma periódica por medio de cron
    • Propuesta● Tener un servidor de configuraciones centralizado con git, mercurial o bazaar.● Cada MV del proyecto tenga que usar etckeeper.● Crear una clave RSA para ssh y subir la clave pública al servidor.● Colocar los scripts al cron para automatizar las actualizaciones de los repositorios al servidor principal.● Es necesario también conocer que servicios maneja cada MV y sus datos críticos para tenerlos respaldados, y así poder recuperar un equipo o clonarlo de la forma más rápida y fácil posible.
    • Referencias:● Etckeeper con git: http://sysadmin.vazqueznanini.com.ar/herramientas/etckeeper● Etckeeper con bazaar: http://www.howtoforge.com/using-version-control-for-your-etc-directory-with-etckeeper-and- bazaar-on-debian-squeeze● Etckeeper con mercurial: http://ernesto-ecrespo.blogspot.com/2011/07/gestionar-los-archivos-de-configuracion.html● Tutorial de mercurial: http://ernesto-ecrespo.blogspot.com/2009/04/control-de-versiones-con-mercurial.html● Compartir repositorios mercurial: http://ernesto-ecrespo.blogspot.com/2011/12/compartir-repositorios-mercurial-por.html
    • Contacto● Blog: http://ernesto-ecrespo.blogspot.com● Twitter: @_seraph1● Correo: ecrespo@gmail.com
    • Creditos y Licencia● Contenido por: Ernesto Crespo http://ernesto-ecrespo.blogspot.com Licencia: Creative Common● Template de OpenOffice.org por: Raphaël Hertzog http://raphaelhertzog.com/go/ooo-template Licencia: GPL-2+● Imagen de Fondo por: Alexis Younes “ayo” http://www.73lab.com Licencia: GPL-2+