26
Gestionar los archivos de configuración en /etc con etckeeper y mercurial Debian Venezuela www.debian.org.ve Ernesto Crespo

Gestión de configuración con mercurial y etckeeper

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Gestión de configuración con mercurial y etckeeper

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

y mercurial

Debian Venezuelawww.debian.org.ve

Ernesto Crespo

Page 2: Gestión de configuración con mercurial y etckeeper

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

Page 3: Gestión de configuración con mercurial y etckeeper

Control de versiones centralizado vs distribuido

Page 4: Gestión de configuración con mercurial y etckeeper

Sistemas de control de versiones

Centralizado

CVS

Subversion

Distribuido

Mercurial

Git

Bazaar

Darcs

Page 5: Gestión de configuración con mercurial y etckeeper

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.

Page 6: Gestión de configuración con mercurial y etckeeper

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/

Page 7: Gestión de configuración con mercurial y etckeeper

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.

Page 8: Gestión de configuración con mercurial y etckeeper

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 [email protected]"

Configurar Mercurial: Editar /etc/mercurial/hgrc

Agregar: [ui]

username = [email protected]

Page 9: Gestión de configuración con mercurial y etckeeper

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

Page 10: Gestión de configuración con mercurial y etckeeper

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

Page 11: Gestión de configuración con mercurial y etckeeper

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: [email protected]

date: Wed Jul 27 22:02:27 2011 -0430

summary: committing changes in /etc after apt run

changeset: 0:f2a3f337ecc0

Page 12: Gestión de configuración con mercurial y etckeeper

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" /

Page 13: Gestión de configuración con mercurial y etckeeper

Historico de cambios

hg log

changeset: 4:7492a4b4c049

branch: nuevo

tag: tip

user: [email protected]

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

summary: Agregado IP al equipo zeath en hosts

changeset: 3:cd99782fa34a

branch: nuevo

user: [email protected]

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

Page 14: Gestión de configuración con mercurial y etckeeper

Historico de cambios

changeset: 2:6519676e89b5

branch: nuevo

user: [email protected]

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: [email protected]

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

summary: committing changes in /etc after apt run

Page 15: Gestión de configuración con mercurial y etckeeper

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

Page 16: Gestión de configuración con mercurial y etckeeper

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: [email protected]

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: [email protected]

Page 17: Gestión de configuración con mercurial y etckeeper

Revisar log

changeset: 2:6519676e89b5

branch: nuevo

user: [email protected]

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: [email protected]

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

Page 18: Gestión de configuración con mercurial y etckeeper

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

Page 19: Gestión de configuración con mercurial y etckeeper

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

Page 20: Gestión de configuración con mercurial y etckeeper

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

Page 21: Gestión de configuración con mercurial y etckeeper

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

Page 22: Gestión de configuración con mercurial y etckeeper

Commits en Bitbucket

Page 23: Gestión de configuración con mercurial y etckeeper

Archivos en bitbucket

Page 24: Gestión de configuración con mercurial y etckeeper

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

Page 25: Gestión de configuración con mercurial y etckeeper

Contacto

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

Twitter: @ernestocrespo

Correo: [email protected]

Page 26: Gestión de configuración con mercurial y etckeeper

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+