0
Gestionar los archivos de configuración en /etc con etckeeper y mercurial Debian Venezuela www.debian.org.ve Ernesto Crespo
Agenda <ul><li>Control de versiones centralizado vs distribuido
Que es Mercurial
Comandos básicos de mercurial
Que es etckeeper </li><ul><li>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 </li></ul></ul>
Control de versiones centralizado vs distribuido
Sistemas de control de versiones <ul><li>Centralizado </li><ul><li>CVS
Subversion </li></ul><li>Distribuido </li><ul><li>Mercurial
Git
Bazaar
Darcs </li></ul></ul>
Mercurial <ul><li>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 configura...
Comandos básicos de Mercurial <ul><li>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
Upcoming SlideShare
Loading in...5
×

Gestión de configuración con mercurial y etckeeper

1,094

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,094
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
18
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "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>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×