{"id":840,"date":"2015-11-06T11:59:13","date_gmt":"2015-11-06T11:59:13","guid":{"rendered":"http:\/\/esferas.org\/msqlu\/?p=840"},"modified":"2015-11-06T11:59:45","modified_gmt":"2015-11-06T11:59:45","slug":"recuperando-un-servicio-como-un-todo","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2015\/11\/06\/recuperando-un-servicio-como-un-todo\/","title":{"rendered":"Recuperando un servicio como un todo &#8230;"},"content":{"rendered":"<p><a href=\"https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/02\/tools_server.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-562\" src=\"https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/02\/tools_server-150x150.png\" alt=\"tools_server\" width=\"150\" height=\"150\" \/><\/a>&#8230; algunas reflexiones y un par de esquemas.<\/p>\n<p><!--more--><\/p>\n<p>De cuando en cuando me toca volver a ser administrador de sistemas a tiempo completo. En esta ocasi\u00f3n se debe a que estoy replante\u00e1ndome el cambio de software de copias de seguridad y, de paso, la realizaci\u00f3n de copias como proceso.<\/p>\n<p>Es cierto que la herramienta disponible nos condiciona a la hora de emplearla. En mi caso las limitaciones de <em>bacula<\/em> son las responsables de que los procesos de copias sean tan\u00a0 dif\u00edciles de configurar y tan complejos de revertir.<\/p>\n<p>El principio de <em>bacula<\/em> sit\u00faa cada proceso de copia como un todo impermeable (al menos en la versi\u00f3n open source) y nos limita a conectarnos a un sistema y extraer de \u00e9l aquellos archivos que han cambiado. Permite efectuar tareas en el cliente con los m\u00e1ximos privilegios antes de realizar las copias, pero al final siempre trata con archivos y \u00e1rboles de directorios. La informaci\u00f3n especial, como las base de datos relacionales o los directorios <em>LDAP<\/em>, tienen que ser primero exportados con herramientas espec\u00edficas y forzados a adoptar la forma que requiere el programa.<\/p>\n<p>Todo eso no ser\u00eda un inconveniente si no fuese porque deja varios cabos sueltos:<\/p>\n<ul>\n<li>Las disposiciones necesarias en la configuraci\u00f3n del sistema para que los datos puedan ser recuperados: usuarios, permisos, contrase\u00f1as de acceso &#8230;<\/li>\n<li>Los programas que convierten los volcados a datos utilizables (ni se contemplan).<\/li>\n<li>Como cada trabajo s\u00f3lo lee de una m\u00e1quina no sabe nada de otras. Un ejemplo es un sitio web cuyos archivos est\u00e1ticos residan en un tercero; en este caso tendr\u00edamos dos trabajos de copia que restaurar.<\/li>\n<li>Tampoco sabe nada de qu\u00e9 otros programas deben existir y estar configurados. Una aplicaci\u00f3n web, por ejemplo, precisa de un servidor de p\u00e1ginas y un entorno de ejecuci\u00f3n (<em>PHP<\/em>, <em>Perl<\/em>, &#8230;).<\/li>\n<\/ul>\n<p>Resumiendo un poco: <em>bacula<\/em> no contempla la recuperaci\u00f3n de servicios sino de \u00e1rboles de archivos. Mi inter\u00e9s reside ahora en lo primero: quiero que alguien con un perfil t\u00e9cnico bajo pueda volver a poner en marcha un servicio.<\/p>\n<p>Para ello estoy pensando en cosas que podr\u00edan ser interesantes. En el siguiente esquema pueden verse algunas:<\/p>\n<p><a href=\"https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/11\/Recuperaci\u00f3n-de-un-servicio.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-841\" src=\"https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/11\/Recuperaci\u00f3n-de-un-servicio-1024x295.png\" alt=\"Recuperaci\u00f3n de un servicio\" width=\"600\" height=\"173\" srcset=\"https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/11\/Recuperaci\u00f3n-de-un-servicio-1024x295.png 1024w, https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/11\/Recuperaci\u00f3n-de-un-servicio-300x86.png 300w, https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/11\/Recuperaci\u00f3n-de-un-servicio-768x221.png 768w, https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/11\/Recuperaci\u00f3n-de-un-servicio.png 1406w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a>Ahora voy a imaginar un momento futuro en el que alguien entrenado por m\u00ed tiene que recuperar el servicio:<\/p>\n<ol>\n<li>Acceder\u00eda a una hoja de instrucciones simple y concreta. Puede estar en el wiki de la empresa pero es m\u00e1s \u00fatil si no precisa de un entorno operativo.<\/li>\n<li>Las instrucciones deben dirigirle a una m\u00e1quina donde est\u00e1 almacenadas las copias clasificadas precisamente por nombre de servicio. Tambi\u00e9n deben indicarle c\u00f3mo tener acceso a dicha m\u00e1quina y con qu\u00e9 credenciales presentarse.<\/li>\n<li>En dicho directorio debe encontrarse\n<ol>\n<li>Un archivo simple (README, LEAME o as\u00ed) en el que se detallen:\n<ol>\n<li>las dependencias externas del servicio (paquetes instalados, configuraci\u00f3n recuperada, servicios externos,&#8230;).<\/li>\n<li>Las contrase\u00f1as que debe tener a mano.<\/li>\n<li>Los programas que debe ejecutar y c\u00f3mo.<\/li>\n<\/ol>\n<\/li>\n<li>El <em>script<\/em> a ejecutar que lleva a cabo, paso a paso y con numerosa informaci\u00f3n, los procedimientos de recuperaci\u00f3n.<\/li>\n<li>Las fuentes de informaci\u00f3n que debe recuperar:\n<ol>\n<li>\u00c1rboles de archivos.<\/li>\n<li>Volcados de bases de datos y similares.<\/li>\n<li>Archivos de configuraci\u00f3n.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>Seg\u00fan escribo me doy cuenta de que existen dos requisitos que es imprescindible resolver antes de liarme a dise\u00f1ar algo as\u00ed:<\/p>\n<ol>\n<li>Las contrase\u00f1as deben estar accesibles en papel.<\/li>\n<li>Los archivos fuente deben estar disponibles de manera inmediata en el directorio que he citado.<\/li>\n<\/ol>\n<p>El primero no es dif\u00edcil ya que las contrase\u00f1as de las bases de datos y administrativas no suelen cambiar demasiado; es factible tenerlas en papel junto con la hoja de recuperaci\u00f3n.<\/p>\n<p>El segundo ya tiene un poco m\u00e1s de tela si empleamos programas de copias de seguridad de verdad; suelen tener la costumbre de almacenar los datos en formatos especiales, bien en disco, bien en cintas magn\u00e9ticas, bien en otros servidores, y no suelen ser accesibles si no es mediante sus propios programas.<\/p>\n<p><em>Bacula<\/em> (o <em>bareos<\/em> pr\u00f3ximamente) tiene procedimientos de recuperaci\u00f3n flexibles y enrevesados. Quiz\u00e1s creando un perfil concreto fuese posible automatizar toda la recuperaci\u00f3n con una \u00fanica orden, sin recurrir a su men\u00fa y sus m\u00faltiples preguntas, as\u00ed que esa ser\u00e1 mi siguiente prioridad en este tema.<\/p>\n<p>He revoloteado un poco por el asunto y creo que podr\u00eda partir de un archivo de texto que describiese lo que indica en este esquema:<\/p>\n<p><a href=\"https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/11\/Descripci\u00f3n-del-servicio.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-842\" src=\"https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/11\/Descripci\u00f3n-del-servicio-1024x260.png\" alt=\"Descripci\u00f3n del servicio\" width=\"600\" height=\"152\" srcset=\"https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/11\/Descripci\u00f3n-del-servicio-1024x260.png 1024w, https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/11\/Descripci\u00f3n-del-servicio-300x76.png 300w, https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/11\/Descripci\u00f3n-del-servicio-768x195.png 768w, https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/11\/Descripci\u00f3n-del-servicio.png 1286w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a>Con este punto de partida podr\u00eda escribir uno o varios scripts que creasen la configuraci\u00f3n correspondiente para realizar copias y para recuperarlas, as\u00ed como la documentaci\u00f3n necesaria para el operador.<\/p>\n<p>Voy a trabajar un poco m\u00e1s &#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8230; algunas reflexiones y un par de esquemas.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[2],"tags":[18,34,92,488],"class_list":["post-840","post","type-post","status-publish","format-standard","hentry","category-software","tag-administracion-de-sistemas","tag-backups","tag-bacula","tag-servicios"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/840","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/comments?post=840"}],"version-history":[{"count":0,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/840\/revisions"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}