gestión de configuración con mercurial y etckeeper
DESCRIPTION
Explicación del funcionamiento de etckeeper para administrar la configuración (directorio /etc/) de equipos con Debian.TRANSCRIPT
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 [email protected]"
Configurar Mercurial: Editar /etc/mercurial/hgrc
Agregar: [ui]
username = [email protected]
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: [email protected]
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: [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
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
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: [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]
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
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
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+