Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Gestión de configuración con mercurial y etckeeper

1,350 views

Published on

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

Published in: Technology
  • Be the first to comment

Gestión de configuración con mercurial y etckeeper

  1. 1. Gestionar los archivos de configuración en /etc con etckeeper y mercurial Debian Venezuela www.debian.org.ve Ernesto Crespo
  2. 2. Agenda <ul><li>Control de versiones centralizado vs distribuido
  3. 3. Que es Mercurial
  4. 4. Comandos básicos de mercurial
  5. 5. Que es etckeeper </li><ul><li>Instalación y configuración
  6. 6. Iniciar etckeeper
  7. 7. Primer commit
  8. 8. Estatus y log
  9. 9. Modificar archivo y reflejar cambios en el mercurial
  10. 10. Ver diferencias de archivos, revisiones,revertir cambios.
  11. 11. Subir a un repositorio central </li></ul></ul>
  12. 12. Control de versiones centralizado vs distribuido
  13. 13. Sistemas de control de versiones <ul><li>Centralizado </li><ul><li>CVS
  14. 14. Subversion </li></ul><li>Distribuido </li><ul><li>Mercurial
  15. 15. Git
  16. 16. Bazaar
  17. 17. Darcs </li></ul></ul>
  18. 18. Mercurial <ul><li>Sistema de control de versiones distribuido y multiplataforma, para desarrolladores de software.
  19. 19. Implementado principalmente en python.
  20. 20. Para acceder a repositorios usa ssh y/o http.
  21. 21. Se puede usar para controlar versiones de documentos, empaquetar para Debian, controlar versiones de archivos de configuración y desarrollo. </li></ul>
  22. 22. Comandos básicos de Mercurial <ul><li>Listar comandos: hg
  23. 23. Clonar un repo: hg clone http://bitbucket.org/ecrespo/pyloro/
  24. 24. Ver log: hg log
  25. 25. Estatus del repositorio: hg status
  26. 26. Actualizar un repositorio: hg update
  27. 27. Commit: hg commit -m “Cambio de fecha”
  28. 28. Aplicar cambios: hg push http://bitbucket.org/ecrespo/pyloro/ </li></ul>
  29. 29. Etckeeper <ul><li>Colección de herramientas que permiten almacenar el directorio /etc en un repositorio git, mercurial, darcs o bzr.
  30. 30. Refleja cambios automaticamente al final del proceso de instalación o actualización de paquetes por medio de dpkg,apt, rpm o yum.
  31. 31. Página del proyecto: http://kitenet.net/~joey/code/etckeeper/
  32. 32. Mantiene historicos de los archivos guardados en /etc para: </li><ul><li>Documentación: Los mensajes de log son adjuntados a los cambios de los archivos de configuración como documentación.
  33. 33. Resolución de problemas: Permite recuperar configuraciones en /etc que se borraran o dañen la configuración de un servicio. </li></ul></ul>
  34. 34. Instalación y configuración <ul><li>Instalación de etckeeper y mercurial </li><ul><li>apt-get install etckeeper mercurial </li></ul><li>Configuración </li><ul><li>Modificar archivo /etc/etckeeper/etckeeper.conf </li><ul><li>Descomentar VCS=&quot;hg&quot;
  35. 35. Comentar el resto de los VCS.
  36. 36. Agregar la opción del usuario: HG_COMMIT_OPTIONS=&quot;-u [email_address] &quot; </li></ul><li>Configurar Mercurial: Editar /etc/mercurial/hgrc </li><ul><li>Agregar: [ui]
  37. 37. username = ecrespo@gmail.com </li></ul></ul></ul>
  38. 38. Iniciar etckeeper <ul><li>Borrar cualquier registro inicial de control de versiones anterior sobre el directorio /etc </li><ul><li>etckeeper uninit </li></ul><li>Inicializar el control de versiones con mercurial para etckeeper </li><ul><li>etckeeper init
  39. 39. adding xdg/xfce4/panel/systray-4.rc
  40. 40. adding xdg/xfce4/panel/xfce4-menu-5.rc
  41. 41. adding xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
  42. 42. adding xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml
  43. 43. adding xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml
  44. 44. adding xdg/xfce4/xinitrc
  45. 45. adding xml/catalog
  46. 46. adding xml/docbook-xml.xml
  47. 47. adding xml/docbook-xsl.xml
  48. 48. adding xml/rarian-compat.xml
  49. 49. adding xml/sgml-data.xml
  50. 50. adding xml/xml-core.xml </li></ul></ul>
  51. 51. Primer commit <ul><li>etckeeper commit &quot;Inicializacion del control de versiones&quot;
  52. 52. Instalar un paquete Debian: </li><ul><li>apt-get install lighttpd
  53. 53. adding lighttpd/conf-available/15-fastcgi-php.conf
  54. 54. adding lighttpd/conf-available/90-debian-doc.conf
  55. 55. adding lighttpd/conf-available/README
  56. 56. adding lighttpd/lighttpd.conf
  57. 57. adding logrotate.d/lighttpd
  58. 58. adding rc0.d/K01lighttpd
  59. 59. adding rc1.d/K01lighttpd
  60. 60. adding rc2.d/S20lighttpd
  61. 61. adding rc3.d/S20lighttpd
  62. 62. adding rc4.d/S20lighttpd
  63. 63. adding rc5.d/S20lighttpd
  64. 64. adding rc6.d/K01lighttpd </li></ul></ul>
  65. 65. Estatus y log <ul><li>Estatus del directorio /etc/ </li><ul><li>hg status /etc/
  66. 66. M ../etc/.etckeeper </li></ul><li>Log del directorio /etc/ </li><ul><li>hg log /etc/
  67. 67. changeset: 1:ba22869a3179
  68. 68. tag: tip
  69. 69. user: [email_address]
  70. 70. date: Wed Jul 27 22:02:27 2011 -0430
  71. 71. summary: committing changes in /etc after apt run
  72. 72. changeset: 0:f2a3f337ecc0
  73. 73. user: [email_address]
  74. 74. date: Wed Jul 27 21:54:21 2011 -0430
  75. 75. summary: Inicializacion del control de versiones </li></ul></ul>
  76. 76. Modificar un archivo y reflejar cambio en el scv <ul><li>Modificar archivo /etc/hosts, agregar un host: </li><ul><li>127.0.0.1 localhost
  77. 77. 127.0.1.1 zeath.dst.pdvsa.com zeath
  78. 78. 192.168.10.124 zeath.dst.pdvsa.com zeath </li></ul><li>Ver status: </li><ul><li>hg status
  79. 79. M hosts </li></ul><li>Hacer commit: </li><ul><li>etckeeper commit &quot;Agregado IP al equipo zeath en hosts&quot; /etc/hostss </li></ul></ul>
  80. 80. Historico de cambios <ul><li>hg log </li><ul><li>changeset: 4:7492a4b4c049
  81. 81. branch: nuevo
  82. 82. tag: tip
  83. 83. user: [email_address]
  84. 84. date: Fri Aug 26 21:20:49 2011 -0430
  85. 85. summary: Agregado IP al equipo zeath en hosts
  86. 86. changeset: 3:cd99782fa34a
  87. 87. branch: nuevo
  88. 88. user: [email_address]
  89. 89. date: Fri Aug 26 21:15:45 2011 -0430
  90. 90. summary: committing changes in /etc after apt run </li></ul></ul>
  91. 91. Historico de cambios <ul>changeset: 2:6519676e89b5 <ul>branch: nuevo user: [email_address] 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_address] date: Fri Aug 26 21:12:20 2011 -0430 summary: committing changes in /etc after apt run changeset: 0:e1ff160684aa branch: nuevo user: [email_address] date: Fri Aug 26 21:11:24 2011 -0430 summary: Inicializacion del control de versiones </ul></ul>
  92. 92. Ver diferencias en archivos <ul><li>Diferencias en archivos del directorio /etc/: Se agrega el equipo jewel.
  93. 93. hg diff /etc/
  94. 94. diff -r 7492a4b4c049 hosts
  95. 95. --- a/hosts Fri Aug 26 21:20:49 2011 -0430
  96. 96. +++ b/hosts Fri Aug 26 21:29:31 2011 -0430
  97. 97. @@ -1,6 +1,7 @@
  98. 98. 127.0.0.1 localhost
  99. 99. 127.0.1.1 zeath.dst.pdvsa.com zeath
  100. 100. 192.168.10.124 zeath.dst.pdvsa.com zeath
  101. 101. +192.168.32.114 jewel.dst.pdvsa.com jewel
  102. 102. # The following lines are desirable for IPv6 capable hosts
  103. 103. ::1 ip6-localhost ip6-loopback
  104. 104. fe00::0 ip6-localnet
  105. 105. Al ejecutar el commit y volver a hacer el diff ya no se muestran cambios por que se subieron al repositorio: </li><ul><li>etckeeper commit &quot;Agregado el nombre jewel a la IP 192.168.32.114 en el archivo /etc/hosts&quot; /etc/hosts </li></ul></ul>
  106. 106. Revisar log <ul><li>Al ejecutar la visualización del log aparece el cambio del host: </li><ul><li>hg log /etc/ </li><ul><li>changeset: 5:6fe272e9d3f5
  107. 107. branch: nuevo
  108. 108. tag: tip
  109. 109. user: [email_address]
  110. 110. date: Fri Aug 26 21:32:55 2011 -0430
  111. 111. summary: Agregado el nombre jewel a la IP 192.168.32.114 en el archivo /etc/hosts
  112. 112. changeset: 4:7492a4b4c049
  113. 113. branch: nuevo
  114. 114. user: [email_address]
  115. 115. date: Fri Aug 26 21:20:49 2011 -0430
  116. 116. summary: Agregado IP al equipo zeath en hosts
  117. 117. changeset: 3:cd99782fa34a
  118. 118. branch: nuevo
  119. 119. user: [email_address]
  120. 120. date: Fri Aug 26 21:15:45 2011 -0430
  121. 121. summary: committing changes in /etc after apt run </li></ul></ul></ul>
  122. 122. Revisar log <ul>changeset: 2:6519676e89b5 branch: nuevo user: [email_address] 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_address] date: Fri Aug 26 21:12:20 2011 -0430 summary: committing changes in /etc after apt run changeset: 0:e1ff160684aa branch: nuevo user: [email_address] date: Fri Aug 26 21:11:24 2011 -0430 summary: Inicializacion del control de versiones </ul>
  123. 123. Ver cambios entre revisiones <ul><li>Ver cambios entre la revisión 0 a 5 de /etc/hosts: </li><ul><li>hg diff -r 0 -r 5 /etc/hosts
  124. 124. diff -r e1ff160684aa -r 6fe272e9d3f5 hosts
  125. 125. --- a/hosts Fri Aug 26 21:11:24 2011 -0430
  126. 126. +++ b/hosts Fri Aug 26 21:32:55 2011 -0430
  127. 127. @@ -1,6 +1,7 @@
  128. 128. 127.0.0.1 localhost
  129. 129. 127.0.1.1 zeath.dst.pdvsa.com zeath
  130. 130. -
  131. 131. +192.168.10.124 zeath.dst.pdvsa.com zeath
  132. 132. +192.168.32.114 jewel.dst.pdvsa.com jewel
  133. 133. # The following lines are desirable for IPv6 capable hosts
  134. 134. ::1 ip6-localhost ip6-loopback
  135. 135. fe00::0 ip6-localnet </li></ul></ul>
  136. 136. Ver cambios entre revisiones <ul><li>Ver cambios entre la revisión 4 a 5 de /etc/hosts: </li><ul><li>hg diff -r 4 -r 5 /etc/hosts
  137. 137. diff -r 7492a4b4c049 -r 6fe272e9d3f5 hosts
  138. 138. --- a/hosts Fri Aug 26 21:20:49 2011 -0430
  139. 139. +++ b/hosts Fri Aug 26 21:32:55 2011 -0430
  140. 140. @@ -1,6 +1,7 @@
  141. 141. 127.0.0.1 localhost
  142. 142. 127.0.1.1 zeath.dst.pdvsa.com zeath
  143. 143. 192.168.10.124 zeath.dst.pdvsa.com zeath
  144. 144. +192.168.32.114 jewel.dst.pdvsa.com jewel
  145. 145. # The following lines are desirable for IPv6 capable hosts
  146. 146. ::1 ip6-localhost ip6-loopback
  147. 147. fe00::0 ip6-localnet </li></ul></ul>
  148. 148. Revertir cambios <ul><li>Revertir cambio de la versión 5 a la 4: </li><ul><li>hg revert -r 4 /etc/hosts </li></ul><li>Revisar status </li><ul><li>hg status
  149. 149. M hosts </li></ul><li>Hacer commit: </li><ul><li>etckeeper commit &quot;Se revirtio el cambio de la revisión 5 a la 4 del archivo /etc/hosts&quot; /etc/hosts </li></ul><li>Archivo /etc/hosts final: </li><ul><li>127.0.0.1 localhost
  150. 150. 127.0.1.1 zeath.dst.pdvsa.com zeath
  151. 151. 192.168.10.124 zeath.dst.pdvsa.com zeath
  152. 152. # The following lines are desirable for IPv6 capable hosts
  153. 153. ::1 ip6-localhost ip6-loopback
  154. 154. fe00::0 ip6-localnet
  155. 155. ff00::0 ip6-mcastprefix
  156. 156. ff02::1 ip6-allnodes
  157. 157. ff02::2 ip6-allrouters </li></ul></ul>
  158. 158. Subir el repositorio de /etc a servidor central <ul><li>Subir a bitbucket: </li><ul><li>hg push https://bitbucket.org/ecrespo/configuracion-jewel
  159. 159. http authorization required
  160. 160. realm: Bitbucket.org HTTP
  161. 161. user: ecrespo
  162. 162. password:
  163. 163. pushing to https://bitbucket.org/ecrespo/configuracion-jewel
  164. 164. searching for changes
  165. 165. remote: adding changesets
  166. 166. remote: adding manifests
  167. 167. remote: adding file changes
  168. 168. remote: added 4 changesets with 5764 changes to 5759 files
  169. 169. remote: bb/acl: ecrespo is allowed. accepted payload. </li></ul></ul>
  170. 170. Commits en Bitbucket
  171. 171. Archivos en bitbucket
  172. 172. Referencias: <ul><li>Etckeeper con git: http://sysadmin.vazqueznanini.com.ar/herramientas/etckeeper
  173. 173. Etckeeper con bazaar: http://www.howtoforge.com/using-version-control-for-your-etc-directory-with-etckeeper-and-bazaar-on-debian-squeeze
  174. 174. Etckeeper con mercurial: http://ernesto-ecrespo.blogspot.com/2011/07/gestionar-los-archivos-de-configuracion.html
  175. 175. Tutorial de mercurial: http://ernesto-ecrespo.blogspot.com/2009/04/control-de-versiones-con-mercurial.html </li></ul>
  176. 176. Contacto <ul><li>Blog: http://blog.crespo.org.ve
  177. 177. Twitter: @ernestocrespo
  178. 178. Correo: ecrespo@gmail.com </li></ul>
  179. 179. Creditos y Licencia <ul><li>Contenido por: Ernesto Crespo http://blog.crespo.org.ve Licencia: Creative Common
  180. 180. Template de OpenOffice.org por: Raphaël Hertzog http://raphaelhertzog.com/go/ooo-template Licencia: GPL-2+
  181. 181. Imagen de Fondo por: Alexis Younes “ayo” http://www.73lab.com Licencia: GPL-2+ </li></ul>

×