[[PageOutline(2-5,Índice)]] = Estructura de los repositorios de imágenes = == Propuesta de estructura de directorios == Atendiendo a las necesidades de clonación de una organización, resulta muy interesante disponer de mecanismos para personalizar y completar la instalación de imágenes monolíticas con ficheros y paquetes personalizados para un determinado cliente o para un conjunto de ellos. Se propone la siguiente estructura de directorios flexible para que las funciones y scripts del motor de clonación puedan acceder fácilmente a los ficheros que permitan una posconfiguración de los equipos: - {{{/opt/opengnsys/repo}}} - punto de montaje principal (''sustituye a {{{/opt/opengnsys/images}}}''). - {{{images}}} - directorio de imágenes completas. - {{{groups}}} - directorio de conjuntos de clientes (agrupados por unidad organizativa o sala).web de gestión. - ''{{{NombreGrupo}}}'' - un directorio por grupo de clientes, según la estructura de la base de datos de la consola. - ''{{{NombreImagen}}}'' - un directorio por nombre de imagen con los ficheros específicos a aplicar para dicha imagen en ese grupo. - {{{clients}}} - directorio de clientes. - ''{{{NombreCliente}}}'' - un directorio por grupo de clientes, según los datos de la base de datos de la consola. - ''{{{NombreImagen}}}'' - un directorio por nombre de imagen con los ficheros específicos a aplicar para dicha imagen en ese cliente. El control de esta estructura de directorios puede automatizarse implementando un conjunto de modificaciones en el protocolo de comunicaciones entre OpenGnSys Server y OpenGnSys Repository Manager, de tal forma que el primero de ellos debe comunicar al segundo aquellas operaciones a ejecutar cuando se realicen modificaciones en la base de datos de la consola de gestión. Fin de la propuesta. La documentación que está a continuación es anterior y no tiene en cuenta esta estructura de directorios. == Tipos de repositorios == === REPOSITOY MANAGER === Exportación de su images. {{{ FileSystem a exportar o campartir: /opt/opengnsys/images/IP }}} Importación de images de otros repositorios o almacenamientos no opengnsys. {{{ /opt/opengnsys/images/$IP }}} === REPOSITORIOS EXTERNOS (nas, servidor samba....) === exportarán el FS indicado, para ser montado por REPOSITORY MANAGER o por los clientes Opengnsys. === El repositorio ubicado en los clientes, partición denominada CACHE === La partición cache se montará en el cliente en: {{{ /opt/opengnsys/images/$IP # donde $IP hace referencia a localhost, cache, CACHE, y su propia ip o a la de loopback }}} La conexiion con las imagenes con el repositorio Opengnsys en: {{{ /opt/opengnsys/images/$IP # donde $IP hace referencia a REPO, repo, es decir la propia ip del servidor . }}} La conexiion con las imagenes con repositorios externos: {{{ /opt/opengnsys/images/$IP # donde $IP hace referencia a la ip del servidor repositorio no opengnsys. }}} === Repositorios mobiles, usb, dvd === {{{ /mnt/$DVD-$id /mnt/$USB-$id }}} == Acceso a los repositorios remotos, locales o extraibles desde un cliente arrancado por pxe o live CD == Al montar un repositorio, local o remoto, el sistema exportará tambien las variables: $CACHE, $REPO, $IPSERVIDOR-ALT, $DVD, $USB {{{ Acceso al servidor base => MountRepo($IPservidor,protocolo) -> /opt/opengnsys/images/$IPservidor [[BR]] Acceso a la cache local => MountCache() -> /opt/opengnsys/images/$IPlocal [[BR]] Acceso a una cache de cliente remoto o servidor alterno => MountRepo(host,protocolo) -> $REPO-$IP="/opt/opengnsys/images/$IPhostremoto[[BR]] Acceso a dispositivo almacenamiento extraible => MountStorage(por definir) -> }}} == Acceso a los repositorios cache desde un cliente OFFline basado en la partición rescate cache == {{{ --- Modificación de MountCache para que monte el raiz(/) también en /mnt/$IP --- }}} == Contenido de las cache var/opt/$package$/images/ == Por cada imagen que se genera se crean tres archivos: [[br]] * la imagen monolíticas creadas con las herramientes ntfsclone, partimage, partclone, fsarchiver .... [[br]] * La información de los torrent de dichas imágenes. $imagen.torrent [[br]] * la información para la transferencia por multicast $imagen.mcast [[br]] los subdirectorios donde se ubicarán los archivos se indican como parámetros de la función. == Acceso al repositorio para restaurar o crear imagen == El acceso a una imagen en el repositorio global (remoto) es {{{ $REPO$REPOMAN subdirectorio/ imagen }}} El acceso a una imagen en el repositorio local (cache) es {{{ $CACHE$REPOMAN subdirectorio/ imagen }}} == Beneficios de esta estructura == * El repositorio local(CACHE), irá creando la misma estructura de directorios que el servidor principal. [[BR]] Si su particion CACHE es la sda3, ésta inicialemente solo contendrá el /opt/opengensys/images (coincide con la estrucutra del servidor opengnyss). En este punto se puede decidir si utilizar la CACHE como Sistema Operativo de respaldo en modo Offline (función MakeOffline). Con las ventajas de disponibilidad y rápidez de inicialización. [[br]] * Si accedemos a un punto torrent por nfs, la metainfo coincide. == Ejemplo de sincronización entre $REPO y $CACHE == UpdateCache $IPservidor subdirectorio nombreimagen => Se descarga la imagen ubicada en $REPO$REPOMAN, la almacena en $CACHE$REPOMAN ---- == Estructura de los repositorios tipo EAC == El repositorio ubicado en el servidor: [[BR]] /var/opt/%package$/hdimages El repositorio ubicado en los clientes [[BR]] /mnt/$dispositivoTipoCACHE$/var/opt/$package/hdimages/ === Acceso a los repositorios === El sistema exporta las siguientes variables: $REPO="/var/opt/$package$/hdimages"[[BR]] $CACHE="/mnt/%dispositivoTipoCACHE%"[[BR]] El acceso a una imagen en el repositorio global (remoto) es {{{ $REPO subdirectorio/ imagen }}} El acceso a una imagen en el repositorio local (cache) es {{{ $CACHE$REPO subdirectorio/ imagen }}} === Beneficios de esta estructura === El repositorio local(CACHE), irá creando la misma estructura de directorios que el servidor principal. [[BR]] Si su particion CACHE es la sda3, ésta inicialemente solo contendrá el /var/opt/$package%/hdimages (coincide con el valor de la variable $REPO). En este punto se puede decidir si utilizar la CACHE como Sistema Operativo de respaldo en modo Offline (función MakeOffline). Con las ventajas de disponibilidad y rápidez de inicialización. === Ejemplo de sincronización entre $REPO y $CACHE === UpdateCache $IPservidor subdirectorio nombreimagen => Se descarga la imagen ubicada en $REPO, la almacena en $CACHE$REPO.