1. Introducción
Lliurex-mirror es la herramienta para realizar réplicas de repositorios remotos o alojados en dispositivos extraíbles. El uso de lliurex-mirror generalmente es a través de un interfaz web (admin-center) o bien desde la aplicación autónoma con interfaz gráfica (lliurex-mirror-gui) desde donde se permite realizar la operativa básica.
Para obtener información de como utilizar la interfaz gráfica se puede ver desde el articulo de primeros pasos creación del mirror.
El usuario avanzado, desarrollador o técnico de mantenimiento dispone también de la versión texto, mediante comandos, la cual puede resultar mas cómoda, rápida o avanzada para un uso específico que no esté incluido en la operativa básica que permite la interfaz web o la interfaz autonoma.
2. Modo de uso del cliente en consola
Para el uso del cliente en modo consola, se debe tener instalado el paquete "lliurex-mirror-cli".
El paquete provee de el comando "lliurex-mirror" el cual permite realizar toda la operativa. Dicho paquete puede ser instalado tanto en ordenadores servidor (debería estar instalado) o bien desde un cliente de aula para poder realizar acciones remotas sobre el servidor.
La forma de uso general del programa es la siguiente:
user@computer:~$ lliurex-mirror PARAMETROS_GENERALES MODO_OPERACION PARAMETROS_MODO_OPERACION
3. Ayuda interactiva
Para obtener una ayuda rápida de las opciones que permite el programa, simplemente con una ejecución sin parámetros ni opciones mostrará una ayuda en la propia terminal.
Algunos de los comandos listados, se presentan acompañados de ‘*’ delante, esto indica que el comando necesitará validación de usuario y password, los cuales deben ser proporcionados en la llamada.
4. Parámetros generales
Los parámetros generales que deben ser utilizados para un correcto funcionamiento del programa son los siguientes:
Parámetro forma corta | Parámetro forma larga | Utilidad |
-H | --host | Indica el host (típicamente servidor) sobre el que serán realizadas las acciones, esto es necesario ya que pueden ser ejecutadas desde un equipo cliente de aula, aunque generalmente serán ejecutadas desde el propio servidor, para ello se puede indicar ‘localhost’ o simplemente no utilizar este parámetro. |
-k | --key | Indica una clave interna para poder utilizar las acciones sobre el servidor, es equivalente al uso de usuario y password, con lo cual se desaconseja su uso en favor de algo mas sencillo de memorizar como es usuario y contraseña de un usuario con permisos de administración del aula (típicamente ‘netadmin’) |
-u | --user | Usuario con permisos de administración de aula (típicamente ‘netadmin’) |
-p | --password | Contraseña del usuario con permisos de administración de aula. |
5. Modos de operación para el cliente desde línea de comandos
5.1. Nomenclatura
Los diferentes modos de operación que aparecen enumerados en los siguientes apartados comienzan con el nombre de la operación que ha de ser añadido como parámetro al comando lliurex-mirror y los parámetros generales.
A continuación del modo de operación aparecen las opciones que soporta, como por ejemplo "DISTRO", lo cual indicaría que debe proporcionarse el nombre de la distribución del mirror ("llx21", "llx19", "llx16").
Entre algunos de los parámetros se pueden encontrar paréntesis o llaves, ambos agrupan parámetros y en caso de ser llaves especifican que son opcionales utilizarlos o no. También aparece una barra vertical "|" que establece una opcionalidad de entre una lista de pámetros especificando que se puede utilizar un parámetro de entre los que aparecen en la lista separada por barras.
5.2. Operaciones habituales
update DISTRO { url | FILEPATH }
Realiza/actualiza una réplica interactivamente de un repositorio para ser utilizada como repositorio ‘mirror’ para el aula.
Esta opción necesita como primer parámetro ‘DISTRO’ necesariamente, el cual para el caso de Lliurex 21 Focal se corresponderá con el valor ‘llx21’.
Como segundo parámetro es posible utilizar una url (por ejemplo: http://lliurex.net/focal) o bien utilizar una carpeta ubicada en el host sobre el que realizamos la acción (típicamente el servidor). Esta opción de realizar/actualizar la réplica desde una carpeta es interesante si se dispone una copia del repositorio en un medio extraíble (por ejemplo: un disco/memoria USB).
Esta operación al ser lanzada de forma interactiva, permite ser cancelada mediante una pulsación Control+C.
Ejemplos:
user@computer:~$ lliurex-mirror -H server -u netadmin -p password update llx21 http://lliurex.net/focal user@computer:~$ lliurex-mirror -H server -u netadmin -p password update llx21 /media/disk/repo_lliurex/
volatileupdate DISTRO { url | FILEPATH }
Operación análoga a update, con la diferencia que no fija el origen de datos que especificamos en esta operación de forma permanente.
Con esta operación se permite crear un repositorio con un origen de un medio extraíble manteniendo la configuración para que las futuras actualizaciones sean con el valor por defecto (http://lliurex.net/)
Ejemplo:
(un disco usb conectado y montado en el propio servidor y una terminal en el servidor)
user@computer:~$ lliurex-mirror -u netadmin -p password volatileupdate llx21 /media/disk/repo_lliurex/
unattendedupdate DISTRO { url | FILEPATH }
Operación análoga a update, con la diferencia que no se realiza de forma interactiva, lanza el trabajo en segundo plano en el host objeto de la operación.
Esta operación no muestra un progreso de como se va realizando, si deseamos obtener el progreso de la operación posteriormente deberemos utilizar la operación ‘getpercentage’.
Al ser una operación lanzada en segundo plano, no se dispone de un interprete que permita cancelar la operativa mediante una señal de interrupción, para ello se debe utilizar la operación ‘stopupdate’.
stopupdate
Operación que permite parar una operación de ‘unattendedupdate’.
isalive
Operación que permite comprobar si un proceso de actualización mediante operaciones ‘update’, ’rundebmirror’, ‘volatileupdate’, ’unattendedupdate’ lanzadas previamente esta en funcionamiento.
getmirrorarchitecture
Operación que permite comprobar las arquitecturas que están configuradas para realizar la réplica en el host especificado en el parámetro -H (si esta omitido este parámetro se tomara ‘localhost’).
setmirrorarchitecture DISTRO (amd64|i386) { (amd64|i386) }
Operación que permite configurar una arquitectura en la configuración del proceso de réplica del repositorio. El valor por defecto para una réplica son todas las arquitecturas (i386 y amd64).
Mediante esta operación es posible ‘aligerar’ el tamaño de una copia de un repositorio cuando es realizada la réplica en el servidor de aula, no obstante hay que utilizarla con cuidado dado que aunque se tenga toda el aula utilizando arquitecturas mas modernas (amd64) y en principio no hayan clientes antiguos (i386) aún se pueden seguir necesitando paquetes i386 instalados sobre máquinas amd64, que en caso de ser necesarios en una instalación de software y no estar disponibles en la réplica de aula impidan la correcta instalación del software.
Nota:
Esta operación solo configura las capacidades de la réplica para ser utilizadas con la próxima actualización, en ningún momento realiza el borrado de los ficheros que actualmente posee la réplica.
Ejemplo:
user@computer:~$ lliurex-mirror -H server -u netadmin -p password setmirrorarchitecture amd64
getpercentage { DISTRO }
Operación que permite comprobar el progreso de una operación de actualización (‘update’,’rundebmirror’,’volatileupdate’,’unattendedupdate’) mostrando el porcentaje completado hasta el momento, si dicha operación de actualización no se esta ejecutando se indica el porcentaje completado de la réplica hasta el momento.
El valor devuelto se corresponde con el tanto por cien del estado del proceso de actualización.
getavailabledistros
Operación que lista los perfiles para realizar replicas configurados en el host sobre el que es aplicada la operación.
Los perfiles listados que se obtienen como resultado se corresponden con el parámetro válido nombrado como ‘DISTRO’ en las diferentes operaciones de la herramienta lliurex-mirror.
getmirrororig { DISTRO OPTION }
Esta operación muestra una lista que asocia orígenes (‘urls’) configurados con una numeración (option) para realizar las actualizaciones del repositorio.
Las opciones de actualización pueden ser consultadas mediante la operación ‘distrolistoptions’, la cual muestra todos los posibles valores para el campo opciones.
Si se desea consultar cual es el origen (option) actualmente habilitado debe utilizarse la operación ‘getoptionupdate’; para realizar un cambio de la opción de actualización debe utilizarse la operación ‘setoptionupdate’ desde el cliente.
getoptionupdate { DISTRO }
Operación que devuelve el origen (url) (‘option’) de actualización que actualmente está configurado para ser utilizado en el proceso de generación de la réplica.
setoptionupdate DISTRO OPTION
Operación que permite fijar una ‘option’ la cual especifica una url que será utilizada en el proceso de réplica, generalmente la ‘option’ numerada como ‘1’ se considera el valor por defecto (mirror desde lliurex.net) y la ‘option’ numerada como ‘3’ será el valor especificado manualmente en una operación generada desde una actualización desde un directorio personalizado.
Esta operación puede ser necesaria para restaurar el origen si no es utilizada la opción ‘volatileupdate’.
Ejemplo:
user@computer:~$ sudo lliurex-mirror -H server -u netadmin -p password setoptionupdate llx21 1
ismirrorupdate { DISTRO }
Operación que informa si existe un proceso de creación/actualización de una replica actualmente en funcionamiento.
resetconfig { DISTRO }
Operación que permite restaurar la configuración por defecto en lliurex-mirror para una determinada distribución.
5.3. Operaciones raramente utilizadas
setcname
Prepara en el host la resolución del nombre ‘mirror’, el host de destino debe utilizar el paquete ‘dnsmasq’.
rundebmirror DISTRO { url | FILEPATH }
Operación idéntica a ‘update’ (ver ayuda de ‘update’), se mantiene por compatibilidad.
exportmirror DISTRO MIRROR_COPY_DIR
Operación que permite generar una copia de la réplica actual hospedada en el servidor de aula ‘server’ sobre un directorio de nuestra elección, el cual debe estar creado previamente.
Para utilizar esta operación será necesario tener instalado correctamente el paquete ‘n4d-lliurex-mirror’ en el equipo que lanza la operación y ejecuta ‘lliurex-mirror’.
Es posible observar el funcionamiento del proceso ejecutándose mediante la operación ‘isaliveexport’, la cual proporciona información acerca de si el proceso esta en funcionamiento así como el porcentaje de la tarea que tiene completado.
Notas:
Para que el funcionamiento de esta operación sea correcto la réplica del servidor de aula debe estar completa y ser válida.
Esta operación debe ser ejecutada con permisos de administración (usuario ‘root’ o bien utilizando ‘sudo’), independientemente de los parametros ‘-u’ o bien ‘user' y '-p' o bien 'password' que son proporcionados para poder realizar las operaciones sobre el servidor de aula.
Esta operación no puede ser cancelada una vez lanzada.
Esta operación puede ser sustituida si se dispone de acceso al servidor mediante herramientas de sincronización tradicionales de sistemas Linux (cp, scp, rsync).
Ejemplo:
user@computer:~$ sudo lliurex-mirror -H server -u netadmin -p password exportmirror llx21 /media/disk/repo_copy
getpercentageexport { DISTRO }
Operación que permite comprobar el progreso de una operación de copia de la actual réplica (‘exportmirror’) mostrando el porcentaje completado hasta el momento.
Esta operación debe ser ejecutada con permisos de administración (usuario ‘root’ o bien utilizando ‘sudo’), independientemente de los parametros ‘-u’ o bien ‘user’ y ‘-p’ o bien ‘password’ que son proporcionados para poder realizar las operaciones sobre el servidor de aula.
El valor devuelto se corresponde con el tanto por cien del estado del proceso de exportación.
Ejemplo:
user@computer:~$ sudo lliurex-mirror -H server -u netadmin -p password getpercentageexport llx21
isaliveexport
Operación que permite comprobar si un proceso de actualización mediante la operación ‘exportmirror’ lanzada previamente esta en funcionamiento.
setmirrororig DISTRO URL OPTION
Esta operación fija un origen (url) para realizar la réplica del repositorio, actualmente cada origen va asociado a una determinada ‘opción’ de actualización la cual especifica si el origen está fijado por defecto o es una especialización, el valor ‘1’ corresponde a una opción por defecto y el valor ‘3’ corresponde a una especialización.
Ejemplo:
Fijar el origen por defecto de las actualizaciones (similar a la operación ‘resetconfig’):
user@computer:~$ lliurex-mirror -H server -u netadmin -p password setmirrororig llx21 http://lliurex.net/focal 1
getchecksumvalidation { DISTRO }
Operación que consulta si será realizada una comprobación de los paquetes cuando es realizada la réplica, el valor por defecto es 0 que corresponde con no realizar la comprobación, lo cual hace el proceso mas ligero al realizar la operativa. Si se desea cambiar este valor debe utilizarse la opción ‘setchecksumvalidation’.
setchecksumvalidation DISTRO { { 0 | false } | { 1 | true } }
Operación que fija si será realizada una comprobación de los paquetes cuando es realizada la réplica.
Ejemplo:
user@computer:~$ lliurex-mirror -H server -u netadmin -p password setchecksumvalidation llx21 1
enablewebserverforpath PATH
Operación que permite servir por http en la red local un directorio de nuestra elección en el host especificado.
La operación devuelve un numero de puerto no privilegiado en el cual se está presentando el path proporcionado como parámetro.
Ejemplo:
user@computer:~$ lliurex-mirror -H server -u netadmin -p password enablewebserverforpath /net/mirror/llx21 user@computer:~$ 36322 user@computer:~$ firefox http://server:36322
stopwebserver PORT
Operación para finalizar el servidor http creado con la operación ‘enablewebserverforpath’.
Ejemplo:
user@computer:~$ lliurex-mirror -H server -u netadmin -p password stopwebserver 36322
distrolistoptions {DISTRO}
Operación que lista los valores a aplicar en una configuración de un perfil de replicación de una distribución. Esta operación solo tiene sentido para uso interno o para una programación que utilice la herramienta.
6. Otras herramientas relacionadas con lliurex-mirror
6.1. domirror
El uso de estas herramientas no es aconsejable en una operativa normal del dia a dia, no obstante en algún caso puede ser interesante conocer alguna operación que esta herramienta permite.
6.1.1. Verificar el estado de todos los paquetes de un mirror existente
En el caso que algún fichero de los que componen el repositorio esté en estado corrupto pueden producirse errores de instalación cuando un cliente desee utilizarlo para ser instalado, o también en caso de que un servidor esté haciendo uso de el para generar nuevas imagenes de clientes o instalaciones por red basadas en netinstall podrian producirse errores.
Para realizar una verificación de integridad de todos los ficheros puede utilizarse como superusuario la herramienta domirror.
El proceso de verificación es más costoso en tiempo por ello es una opción que por defecto está desactivada cuando se realiza un repositorio local.
Para realizar una verificación se debe proceder de la siguiente forma:
- Se debe ejecutar siempre como administrador
- Siempre se debe ejecutar cuando ya tengamos realizado un mirror, de lo contrario el comportamiento puede ser erróneo y errático
Ejemplo:
user@computer:~$ sudo domirror -v -rf
7. Problemas conocidos
7.1. Unable to read MIRROR_DIR
En algunos casos durante una instalación nueva desde algún paquete antiguo no actualizado puede darse el error que imposibilita la creación de la réplica inicial, esto es debido a que aún no se ha creado la carpeta /net/mirror, para solventar este problema deberemos de crear con permisos de administrador la carpeta y reintentar la operación de creación de la réplica local.
user@computer:~$ sudo mkdir /net/mirror