Git Product home page Git Product logo

clonaton's Introduction

Clonatón

¿Qué es clonatón?

Una aplicación que permite generar arranques de red con syslinux e incluye entre sus entradas predeterminadas un servicio de clonaciones con clonezilla.

Posibilita:

  • En lo relativo a la instalación:
    • Integrar la aplicación en un servidor que ya disponga de servicio DHCP (Dynamic Host Configuration Protocol) y al que se quiera añadir la capacidad de servir SS.OO. por red al resto de ordenadores.
    • Montar la aplicación en un ordenador independiente en aquellas redes que ya dispongan de un servicio DHCP (Dynamic Host Configuration Protocol) que no se desea (o no se puede) modificar
  • En lo relativo a la clonación:
    • Clasificar las imágenes por redes (aulas) y tipos de ordenador, de manera que sólo sean visibles desde el ordenador de un aula determina, aquellas imágenes que le sean apropiadas.
    • Realizar clonaciones unicast, multicast y broadcast.
    • Realizar todas las operaciones relativas a la creación, restauración y gestión de imágenes desde el propio menú de arranque ofrecido por syslinux.

Requisitos

clonaton exige la combinación de varios servicios, por lo que necesita varios programas:

  • Un servicio que ofrezca la información de arranque. Esta labor puede hacerla tanto un servidor DHCP (Dynamic Host Configuration Protocol), que junto a la configuración la red puede proporcionar la información de arranque, como un servidor , que sólo ofrece la segunda1. En el segundo caso, es forzoso que el servidor sea dnsmasq, mientras que en el primer caso, podemos optar por los servidores más habituales: el del ¡ISC, el minimalista udhcpd <https://busybox.net/downloads/BusyBox.html#udhcpd> o el propio dnsmasq. A menos que haya una razón poderosa para no hacerlo, lo recomendable es usar también dnsmasq en este caso, ya que tiene la ventaja de integrar otros servicios necesarios.
  • Un servicio para la descarga de ficheros de arranque en la etapa más temprana. Puede usarse cualquier servidor, incluídos aquellos que no soportan el 2348 y, por tanto, no son capaces de servir ficheros de más de 32MB. dnsmasq incluye este servicio, así que usarlo nos exime de instalar (y configurar por nuestra cuenta) un servidor independiente para esta tarea.
  • Un servidor que permita la ejecución de codigo . clonaton incluye la configuración necesaria para nginx. Puede usar otro servidor como apache, pero tendrá usted mismo que configurarlo traduciendo la configuración que se ofrece para nginx.
  • syslinux (y pxelinux)
  • Opcionalmente, un servicio si se opta por referir al servidor mediante un nombre en vez de una dirección IP. Esto puede ser especialmente útil si el servidor esta enganchado a varias redes.

Para ofrecerse el sevicio de clonaciones son necesarios, además:

  • Un servidor .
  • Un servidor que exporte el directorio donde se almacenan las imágenes.
  • sudo.
  • udpcast.

Preinstalación

La aplicación se proporciona mediante un fichero .tar.xz que puede desempaquetarse:

# tar -axvf clonaton.tar.xz
# cd clonaton

Llegados a este punto tenemos dos posibilidades de instalación:

  • Instalación directa.
  • Si estamos en debian o una derivada, generación del paquete deb e instalación a través de él:

    # make deb

    El paquete se encontrará en el directorio padre.

La ventaja de este segundo método es doble:

  1. No necesitamos instalar previamente ningún programa, ya que el gestor de paquetes se encarga de hacer el trabajo.
  2. Es posible configurar y reiniciar los servicios automáticamente.

Instalación

Mediante paquete .deb

Guía del que ni sabe ni quiere saber

Aplicable si la máquina no tiene instalado ningún servicio relacionado previamente (DHCP (Dynamic Host Configuration Protocol), , y ).

  1. Instalar:

    # dpkg -i clonaton_0.1pre_all.deb
  2. Instalar dependencias y arrancar la configuración:

    # apt-get -f install
  3. Contestar a las preguntas con Enter, Enter, Enter salvo:
    • La primera relativa a la forma en la que actúa dnsmasq: si no hay ya servidor DHCP (Dynamic Host Configuration Protocol) elija la primera opción; si ya lo hay, escoja la segunda.

      Warning

      En caso de que escoja la segunda opción, tenga en cuenta que el servidor DHCP (Dynamic Host Configuration Protocol) informa a los clientes de cuál es el servidor . La configuración de este último debe hacerse de forma que pxeserver resuelva a todas las IPs del servidor de clonaciones.

    • Debe dar un nombre y una descripción a las aulas a las que quiere dar servicio.
    • Conteste que a la pregunta de si desea configurar automáticamente los servicios y reiniciarlos.
  4. Añada un usuario al grupo clonaton:

    # adduser usuario_clonador clonaton

Guía comentada

  1. Instalar manualmente el paquete:

    # dpkg -i clonaton_0.1pre_noarch.deb
  2. Es probable que no se satisfagan todas las dependencias, por lo que el paquete quedará a medio instalar y sin configurar. Para solucionarlo:

    # apt-get -f install

    Note

    Si no se especifica nada más, se instalará dnsmasq, ya que la aplicación prefiere dnsmasq sobre cualquier otro servidor DHCP (Dynamic Host Configuration Protocol), ya que:

    • Si deseamos integrar la aplicación con el servidor DHCP (Dynamic Host Configuration Protocol), dnsmasq es también capaz de proporcionar y y evita la instalación de servidores independientes para estas dos tareas.
    • Si nuestra intención es montar un servicio y que el DHCP (Dynamic Host Configuration Protocol) lo proporcione otro servidor (o dispositivo de red) independiente, entonces sólo dnsmasq puede resolver esta función (proxyDHCP).

    Note

    Si ya se había instalado el servidor del , entonces no se instalará dnsmasq y la aplicación entenderá que deseamos integrar los servicios DHCP (Dynamic Host Configuration Protocol) y .

  1. Al instalar las dependecias, la instalación arrancará el instalador que realizará una serie de preguntas a fin de dejar preparada la aplicación para su uso. En lo relativo a estas preguntas es conveniente aclarar lo siguiente:
    • Si el sistema sólo tiene instalado dnsmasq, se nos preguntará si este servicio proporcionará también el DHCP (Dynamic Host Configuration Protocol) o se limita a proporcionar . La respuesta dependerá de si proyecta que este servidor gestione las direcciones de red y, por tanto, deba estar permanentemente dando servicio, o si, simplemente, quiere montar un servidor marginal que cumpla estrictamente con la labor clonatoria.
    • El nombre requerido es aquel que escogerá para identificar al servidor. Si configura usted por su cuenta el servicio , debe hacer que tal nombre resuelva a la del servidor y tendrá que proporcionar dominios de búsqueda a los clientes para que puedan contactar con el servidor haciendo uso del nombre y no incluyendo el dominio. Por tanto, si escoge como nombre el sugerido (pxeserver), desde un cliente la orden:

      $ host pxeserver

      debe resolver a la IP del servidor. Si usa dnsmasq y deja que éste se encargue del tendrá el trabajo hecho.

      Note

      Si está montando un servidor independiente, dnsmasq podría encargándose del , pero tendrá que configurar el servidor DHCP (Dynamic Host Configuration Protocol) para que informe a los clientes de que el nuevo servidor es el servidor . Si no le es posible alterar el servicio DHCP (Dynamic Host Configuration Protocol), entonces no tendrá más remedio que usar una IP en vez de un nombre para contestar a la pregunta.

    • Establezca los directorios que compartirá por y . El segundo contedrá las imágenes creadas, así que requerirá encontrarse en una partición grande. El primero contiene los ficheros compartidos por en la primera etapa del arranque, pero también los ficheros compartidos por en la segunda etapa y en la carga de los sistemas operativos.
    • El configurador detecta todas las redes a las que está conectado el servidor y le pida que dé un nombre y una descripción a cada una de ellas. Si no desea que alguna de las redes participe, deje en blanco el nombre. En caso de que el servidor actúe de DHCP (Dynamic Host Configuration Protocol) por las redes anónimas no se servirán direcciones.
    • El instalador, en principio, deja las configuraciones necesarias para configurar los distintos servicios dentro de /etc/clonaton/configs. Ahora bien, si no tenía configurado previamente ningún servicio puede permitir sin miedo que el configurador traslade estos ficheros a la ubicación final que deben tener para configurar de modo efectivo y automático todos los servicios.
  2. La instalación crea el grupo clonaton en el que se pueden incluir todos los usuarios que desee que tengan permiso para crear y manipular imnágenes.

Mediante el instalador general

Postinstalación

Comprobación del servicio

Una vez completada la instalación y configuración, es conveniente probar desde un cliente que todos los servicios van bien:

  • Compruebe que recibe IP dinámica.
  • Pruebe la conectividad al servidor usando el nombre:

    $ ping pxeserver

    Adicionalmente, puede comprobar si el cliente tiene bien configurada la puerta de enlace:

    $ ping www.google.es
  • Acceda por al servidor con un usuario que pertenezca al grupo clonaton:

    $ ssh usuario_de_clonaton@pxeserver
  • Descargue lpxelinux.0 por :

    $ echo "get bios/lpxelinux.0" | tftp pxelinux
  • Intente montar con el directorio /srv/nfs/images:

    # mount -t nfs -o ro,vers=3 pxeserver:/srv/nfs/images /mnt
  • Pruebe a obtener el menú de arranque:

    $ wget -qO - http://pxeserver/boot/bios/pxelinux.cfg/01-00-11-22-33-44-55

Apañando SliTaZ

SliTaZ no proporciona a través de su página web, la versión base de su distribución, que es la mínima para que sea operativa y que es suficiente para la ejecución de algunas de las tareas que realiza el servicio de clonaciones.

Por eso motivo, el instalador usa la versión core que dispone de entorno gráfico, pero es más pesada. Dada la facilidad para generar a partir de una versión la otra, es recomendable hacer lo siguiente:

  1. Arrancar a través del menú la SliTaZ gráfica.
  2. Hacerse administrador y realizar lo siguiente:

    $ su -  # La contraseña es root.
    # mkdir -p /home/slitaz/flavors
    # cd /home/slitaz/flavors
    # tazlito get-flavor base
    # tazlito gen-distro
  3. Completadas estas acciones, se tendrá en /home/slitaz/5.0/distro la imagen ISO de la slitaz base. Como nos interesa esclusivamente, su sistema de ficheros, podemos extraerlo de la imagen y subirlo al servidor:

    # mount -o ro,loop /home/slitaz/5.0/distro/slitaz-base.iso /mnt
    # scp /mnt/boot/rootfs.gz usuario_de_clonaton@pxeserver:/tmp
    # poweroff
  4. De vuelta en el servidor, debemos copiar el fichero en /srv/tftp/ssoo/slitaz:

    # mv -f /tmp/rootfs.gz /srv/tftp/ssoo/slitaz

Personalización

Estética

Manipulación de entradas

Notas al pie


  1. Es obvio que, además, en algún dispositivo de la red debe existir un servidor DHCP (Dynamic Host Configuration Protocol) que ofrezca la configuración de red y el servidor se limita a suplementarla añadiendo la información de arranque. Implementar este caso es el que requiere un escenario en que ya existe una servicio DHCP (Dynamic Host Configuration Protocol) y una red completamente funcional, y se quiere montar un servicio de clonaciones en una máquina aparte.

clonaton's People

Contributors

sio2sio2 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.