Gestión de configuración con mercurial y etckeeper

Preview:

DESCRIPTION

Explicación del funcionamiento de etckeeper para administrar la configuración (directorio /etc/) de equipos con Debian.

Citation preview

Gestionar los archivos de configuración en /etc con etckeeper

y mercurial

Debian Venezuelawww.debian.org.ve

Ernesto Crespo

Agenda

Control de versiones centralizado vs distribuido

Que es Mercurial

Comandos básicos de mercurial

Que es 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

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/

Etckeeper

Colección de herramientas que permiten almacenar el directorio /etc en un repositorio git, mercurial, darcs o bzr.

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 borraran o dañen la configuración de un servicio.

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

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

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

Modificar un archivo y reflejar cambio en el scv

Modificar archivo /etc/hosts, agregar un host:

127.0.0.1 localhost

127.0.1.1 zeath.dst.pdvsa.com zeath

192.168.10.124 zeath.dst.pdvsa.com zeath

Ver status:

hg status

M hosts

Hacer commit:

etckeeper commit "Agregado IP al equipo zeath en hosts" /

Historico de cambios

hg log

changeset: 4:7492a4b4c049

branch: nuevo

tag: tip

user: ecrespo@gmail.com

date: Fri Aug 26 21:20:49 2011 -0430

summary: Agregado IP al equipo zeath en hosts

changeset: 3:cd99782fa34a

branch: nuevo

user: ecrespo@gmail.com

date: Fri Aug 26 21:15:45 2011 -0430

Historico de cambios

changeset: 2:6519676e89b5

branch: nuevo

user: ecrespo@gmail.com

date: Fri Aug 26 21:14:50 2011 -0430

summary: saving uncommitted changes in /etc prior to apt run

changeset: 1:a33413a4369e

branch: nuevo

user: ecrespo@gmail.com

date: Fri Aug 26 21:12:20 2011 -0430

summary: committing changes in /etc after apt run

Ver diferencias en archivos

Diferencias en archivos del directorio /etc/: Se agrega el equipo jewel.

hg diff /etc/

diff -r 7492a4b4c049 hosts

--- a/hosts Fri Aug 26 21:20:49 2011 -0430

+++ b/hosts Fri Aug 26 21:29:31 2011 -0430

@@ -1,6 +1,7 @@

127.0.0.1 localhost

127.0.1.1 zeath.dst.pdvsa.com zeath

192.168.10.124 zeath.dst.pdvsa.com zeath

Revisar log

Al ejecutar la visualización del log aparece el cambio del host:

hg log /etc/

changeset: 5:6fe272e9d3f5

branch: nuevo

tag: tip

user: ecrespo@gmail.com

date: Fri Aug 26 21:32:55 2011 -0430

summary: Agregado el nombre jewel a la IP 192.168.32.114 en el archivo /etc/hosts

changeset: 4:7492a4b4c049

branch: nuevo

user: ecrespo@gmail.com

Revisar log

changeset: 2:6519676e89b5

branch: nuevo

user: ecrespo@gmail.com

date: Fri Aug 26 21:14:50 2011 -0430

summary: saving uncommitted changes in /etc prior to apt run

changeset: 1:a33413a4369e

branch: nuevo

user: ecrespo@gmail.com

date: Fri Aug 26 21:12:20 2011 -0430

Ver cambios entre revisiones

Ver cambios entre la revisión 0 a 5 de /etc/hosts:

hg diff -r 0 -r 5 /etc/hosts

diff -r e1ff160684aa -r 6fe272e9d3f5 hosts

--- a/hosts Fri Aug 26 21:11:24 2011 -0430

+++ b/hosts Fri Aug 26 21:32:55 2011 -0430

@@ -1,6 +1,7 @@

127.0.0.1 localhost

127.0.1.1 zeath.dst.pdvsa.com zeath

-

+192.168.10.124 zeath.dst.pdvsa.com zeath

+192.168.32.114 jewel.dst.pdvsa.com jewel

Ver cambios entre revisiones

Ver cambios entre la revisión 4 a 5 de /etc/hosts:

hg diff -r 4 -r 5 /etc/hosts

diff -r 7492a4b4c049 -r 6fe272e9d3f5 hosts

--- a/hosts Fri Aug 26 21:20:49 2011 -0430

+++ b/hosts Fri Aug 26 21:32:55 2011 -0430

@@ -1,6 +1,7 @@

127.0.0.1 localhost

127.0.1.1 zeath.dst.pdvsa.com zeath

192.168.10.124 zeath.dst.pdvsa.com zeath

+192.168.32.114 jewel.dst.pdvsa.com jewel

# The following lines are desirable for IPv6 capable hosts

Revertir cambiosRevertir cambio de la versión 5 a la 4:

hg revert -r 4 /etc/hosts

Revisar status

hg status

M hosts

Hacer commit:

etckeeper commit "Se revirtio el cambio de la revisión 5 a la 4 del archivo /etc/hosts" /etc/hosts

Archivo /etc/hosts final:

127.0.0.1 localhost

127.0.1.1 zeath.dst.pdvsa.com zeath

192.168.10.124 zeath.dst.pdvsa.com zeath

Subir el repositorio de /etc a servidor central

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

Commits en Bitbucket

Archivos en bitbucket

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

Contacto

Blog: http://blog.crespo.org.ve

Twitter: @ernestocrespo

Correo: ecrespo@gmail.com

Creditos y Licencia

Contenido por: Ernesto Crespohttp://blog.crespo.org.veLicencia: Creative Common

Template de OpenOffice.org por: Raphaël Hertzoghttp://raphaelhertzog.com/go/ooo-templateLicencia: GPL-2+

Imagen de Fondo por: Alexis Younes “ayo”http://www.73lab.comLicencia: GPL-2+