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

  • 564 views
Uploaded on

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
564
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
5
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. VI Cayapa Canaima Barinas 2012Gestión de configuración distribuída para la plataforma de Canaima Ernesto Crespo @_seraph1
  • 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. Control de versiones centralizado vs distribuido
  • 4. Sistemas de control de versiones● Centralizado ● CVS ● Subversion● Distribuido ● Mercurial ● Git ● Bazaar ● Darcs
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Commits en Bitbucket
  • 21. Archivos en bitbucket
  • 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. 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. 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. 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. 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. Contacto● Blog: http://ernesto-ecrespo.blogspot.com● Twitter: @_seraph1● Correo: ecrespo@gmail.com
  • 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+