0
VI Cayapa Canaima Barinas 2012Gestión de configuración distribuída para la         plataforma de Canaima                  ...
Agenda●   Control de versiones centralizado vs distribuido●   ¿Qué es Etckeeper?●   ¿Qué es Mercurial?●   Comandos básicos...
Control de versiones centralizado vs distribuido
Sistemas de control de versiones●   Centralizado    ●   CVS    ●   Subversion●   Distribuido    ●   Mercurial    ●   Git  ...
Etckeeper●   Colección de herramientas que permiten almacenar el directorio /etc    en un repositorio de Control de versio...
Etckeeper●   Mantiene historicos de los archivos guardados en /etc para:    ●   Documentación de la configuración: Los men...
Etckeeper●   Maneja varios sistemas de control de versiones distribuídos    como:    ●   Git    ●   Mercurial    ●   Bazaa...
Mercurial●   Sistema de control de versiones distribuido y    multiplataforma, para desarrolladores de software.●   Implem...
Comandos básicos de Mercurial●   Listar comandos: hg●   Clonar un repo: hg clone http://bitbucket.org/ecrespo/pyloro/●   V...
Instalación y configuración●   Instalación de etckeeper y mercurial        apt-get install etckeeper mercurial●   Configur...
Iniciar etckeeper●   Borrar cualquier registro inicial de control de versiones anterior sobre el directorio /etc       etc...
Primer commit    etckeeper commit "Inicializacion del control de versiones"●   Instalar un paquete Debian:       apt-get i...
Estatus y log●   Estatus del directorio /etc/       hg status /etc/       M ../etc/.etckeeper●   Log del directorio /etc/ ...
Modificar un archivo y reflejar cambio en el scv●   Modificar archivo /etc/hosts, agregar un host:●   Hacer commit:       ...
Ver diferencias en archivos●   Diferencias en archivos del directorio /etc/:       hg diff /etc/       diff -r 6efc1189bd8...
Revisar log●   Al ejecutar la visualización del log aparece el cambio del host:       hg log /etc/          changeset: 3:4...
Ver cambios entre revisiones●   Ver cambios entre la revisión 1 y 2 de /etc/hosts:       hg diff -r 1 -r 2 /etc/hosts     ...
Revertir cambios●   Revertir cambio de la versión 3 a la 2:       hg revert -r 2 /etc/hosts●   Archivo /etc/hosts final:  ...
Subir el repositorio de /etc a servidor central                 público (Bitbucket)●   Subir a bitbucket:       hg push ht...
Commits en Bitbucket
Archivos en bitbucket
Subir el repositorio a un servidor Centralizado             de Mercurial por ssh●   Es necesario instalar en el equipo ser...
Subir el repositorio a un servidor Centralizado             de Mercurial por ssh●   Se copia la clave pública al servidor ...
Subir el repositorio a un servidor Centralizado                 de Mercurial por ssh●   Se verifica que se accede al servi...
Propuesta●   Tener un servidor de configuraciones centralizado con git,    mercurial o bazaar.●   Cada MV del proyecto ten...
Referencias:●   Etckeeper con git:    http://sysadmin.vazqueznanini.com.ar/herramientas/etckeeper●   Etckeeper con bazaar:...
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● ...
Upcoming SlideShare
Loading in...5
×

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

612

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
612
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. VI Cayapa Canaima Barinas 2012Gestión de configuración distribuída para la plataforma de Canaima Ernesto Crespo @_seraph1
  2. 2. 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
  3. 3. Control de versiones centralizado vs distribuido
  4. 4. Sistemas de control de versiones● Centralizado ● CVS ● Subversion● Distribuido ● Mercurial ● Git ● Bazaar ● Darcs
  5. 5. 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.
  6. 6. 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.
  7. 7. 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
  8. 8. 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.
  9. 9. 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/
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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.
  20. 20. Commits en Bitbucket
  21. 21. Archivos en bitbucket
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. 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.
  26. 26. 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
  27. 27. Contacto● Blog: http://ernesto-ecrespo.blogspot.com● Twitter: @_seraph1● Correo: ecrespo@gmail.com
  28. 28. 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+
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×