Instalación y configuración de fog project en Debian 12

fog-project

¿Que es FOG Project?

FOG Project es una solución de clonación de sistemas de código abierto que nos permite realizar tareas de clonación, implementación y administración de sistemas de manera sencilla y rápida.

Requisitos

  • Debian 12 instalado.
  • Acceso a internet.
  • privilegios de sudo o root.
  • Dos interfaces de red (una de ellas debe tener configurada una IP estática).

Instalación de FOG Project

Si estamos utilizando una máquina virtual, es recomendable instalar el paquete open-vm-tools para mejorar la integración con el hipervisor:

root@fog:~# apt install open-vm-tools -y

Ahora instalamos git para clonar el repositorio de FOG Project:

root@fog:~# apt install git -y

Clonamos el repositorio de FOG Project y accedemos al directorio fogproject/bin:

root@fog:~# git clone https://github.com/FOGProject/fogproject.git && cd fogproject/bin

La instalación de FOG que vamos a realizar está pensada para un entorno de red con dos interfaces de red, una de ellas estará conectada a la red local para tener acceso a internet y la otra interfaz estará conectada a una red privada donde se conectarán los equipos que queremos clonar. En la instalación añadiremos un servidor DHCP y TFTP para que los equipos puedan arrancar desde la red interna y se les asigne una dirección IP automáticamente.

Ejecutamos el script de instalación de FOG Project:

root@fog:~/fogproject/bin# ./installfog.sh

Durante la instalación se nos pedirá que configuremos algunas opciones como la interfaz de red, la dirección IP del servidor FOG, la dirección IP de la puerta de enlace, etc.

Installing LSB_Release as needed
 * Attempting to get release information.......................Done


   +------------------------------------------+
   |     ..#######:.    ..,#,..     .::##::.  |
   |.:######          .:;####:......;#;..     |
   |...##...        ...##;,;##::::.##...      |
   |   ,#          ...##.....##:::##     ..:: |
   |   ##    .::###,,##.   . ##.::#.:######::.|
   |...##:::###::....#. ..  .#...#. #...#:::. |
   |..:####:..    ..##......##::##  ..  #     |
   |    #  .      ...##:,;##;:::#: ... ##..   |
   |   .#  .       .:;####;::::.##:::;#:..    |
   |    #                     ..:;###..       |
   |                                          |
   +------------------------------------------+
   |      Free Computer Imaging Solution      |
   +------------------------------------------+
   |  Credits: http://fogproject.org/Credits  |
   |       http://fogproject.org/Credits      |
   |       Released under GPL Version 3       |
   +------------------------------------------+


   Version: 1.5.10 Installer/Updater

  What version of Linux would you like to run the installation for?

          1) Redhat Based Linux (Redhat, Alma, Rocky, CentOS, Mageia)
          2) Debian Based Linux (Debian, Ubuntu, Kubuntu, Edubuntu)
          3) Arch Linux

  Choice: [2] 2



  Starting Debian based Installation


  FOG Server installation modes:
      * Normal Server: (Choice N)
          This is the typical installation type and
          will install all FOG components for you on this
          machine.  Pick this option if you are unsure what to pick.

      * Storage Node: (Choice S)
          This install mode will only install the software required
          to make this server act as a node in a storage group

  More information:
     http://www.fogproject.org/wiki/index.php?title=InstallationModes

  What type of installation would you like to do? [N/s (Normal/Storage)] N

  We found the following interfaces on your system:
      * eth0 - 192.168.50.68/24
192.168.50.34/24
      * ens19 - 10.0.0.1/24

  Would you like to change the default network interface from eth0?
  If you are not sure, select No. [y/N] y
  What network interface would you like to use? ens19

  Would you like to setup a router address for the DHCP server? [Y/n] y
  What is the IP address to be used for the router on
      the DHCP server? [192.168.50.1]10.0.0.1

  Would you like DHCP to handle DNS? [Y/n] y
  What DNS address should DHCP allow? [192.168.50.60] 127.0.0.1

  Would you like to use the FOG server for DHCP service? [y/N] y

  This version of FOG has internationalization support, would
  you like to install the additional language packs? [y/N] N

  Using encrypted connections is state of the art on the web and we
  encourage you to enable this for your FOG server. But using HTTPS
  has some implications within FOG, PXE and fog-client and you want
  to read https://wiki.fogproject.org/HTTPS before you decide!
  Would you like to enable secure HTTPS on your FOG server? [y/N] N

  Which hostname would you like to use? Currently is: fogproject.fogproject.home.lan
  Note: This hostname will be in the certificate we generate for your
  FOG webserver. The hostname will only be used for this but won't be
  set as a local hostname on your server!
  Would you like to change it? If you are not sure, select No. [y/N] N
  FOG would like to collect some data:
      We would like to collect the following information:
        1. OS Name (CentOS, RedHat, Debian, etc....)
        2. OS Version (8.0.2004, 7.2.1409, 9, etc....)
        3. FOG Version (1.5.9, 1.6, etc....)

  What is this information used for?
      We would like to simply track the common types of OS
      being used, along with the OS Version, and the various
      versions of FOG being used.

  Are you ok with sending this information? [Y/n] n

   ######################################################################
   #     FOG now has everything it needs for this setup, but please     #
   #   understand that this script will overwrite any setting you may   #
   #   have setup for services like DHCP, apache, pxe, tftp, and NFS.   #
   ######################################################################
   # It is not recommended that you install this on a production system #
   #        as this script modifies many of your system settings.       #
   ######################################################################
   #             This script should be run by the root user.            #
   #      It will prepend the running with sudo if root is not set      #
   ######################################################################
   #            Please see our wiki for more information at:            #
   ######################################################################
   #             https://wiki.fogproject.org/wiki/index.php             #
   ######################################################################

 * Here are the settings FOG will use:
 * Base Linux: Debian
 * Detected Linux Distribution: Debian GNU/Linux
 * Interface: ens19
 * Server IP Address: 10.0.0.1
 * Server Subnet Mask: 255.255.255.0
 * Hostname: fogproject.fogproject.home.lan
 * Installation Type: Normal Server
 * Internationalization: No
 * Image Storage Location: /images
 * Using FOG DHCP: Yes
 * DHCP router Address: 10.0.0.1
 * Send OS Name, OS Version, and FOG Version: No


 * Are you sure you wish to continue (Y/N) Y

Cuando marquemos las opciones que queremos, la instalación comenzará y tardará unos minutos en completarse.

Cuando la instalación llegue al siguiente punto No pulses Enter. Primero tenemos que abrir un navegador web y acceder a la dirección que nos indica el instalador para actualizar la base de datos.

 * You still need to install/update your database schema.
 * This can be done by opening a web browser and going to:

   http://10.0.0.1/fog/management

 * Press [Enter] key when database is updated/installed.

Abrimos un navegador web y accedemos a la dirección:

Si el vuestro servidor FOG tiene interfaz gráfica y navegador web, podéis acceder desde el servidor con la dirección http://localhost/.

Si estáis accediendo desde otro equipo, desde la red externa, probablemente no podáis acceder por un error. Para solucionarlo, podeis añadir una regla de iptables para redirigir el tráfico del puerto 80 de la interfaz de red externa a la interfaz de red interna, para poder acceder desde la dirección externa del servidor.

root@fog:~# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 10.0.0.1

Cuando accedamos a la dirección, nos aparecerá la siguiente pantalla:

Pulsamos en el botón “Install/Update Now” para actualizar la base de datos:

fog1

Cuando la base de datos se haya actualizado, nos aparecerá la siguiente pantalla:

fog2

Ahora podemos volver a la terminal y pulsar Enter para continuar con la instalación.

Cuando la instalación haya finalizado, nos aparecerá un mensaje con la dirección de la interfaz web de FOG Project y las credenciales por defecto para acceder:

* Setup complete

   You can now login to the FOG Management Portal using
   the information listed below.  The login information
   is only if this is the first install.

   This can be done by opening a web browser and going to:

   http://10.0.0.1/fog/management

   Default User Information
   Username: fog
   Password: password

 * Changed configurations:

   The FOG installer changed configuration files and created the
   following backup files from your original files:
   * /etc/dhcp/dhcpd.conf <=> /etc/dhcp/dhcpd.conf.1714560818
   * /etc/vsftpd.conf <=> /etc/vsftpd.conf.1714560818
   * /etc/exports <=> /etc/exports.1714560818

Ahora podemos acceder a la interfaz web de FOG Project con la dirección que nos ha indicado el instalador y las credenciales por defecto.

fog3

Al iniciar sesión, nos aparecerá el panel de control de FOG Project donde podremos gestionar las imágenes, hosts, grupos, etc.

fog4

Pruebas de funcionamiento

Para comprobar que FOG Project funciona correctamente, vamos a realizar una prueba clonando y restauración de un equipo.

Inventariar un equipo

Para hacer mas fácil la prueba, vamos a inventariar un equipo. Para ello, arrancamos por red el equipo que queremos inventariar. En mi caso, he arrancado una máquina virtual con debian 12.

Si Fog Project está correctamente instalado, cuando arranquemos el equipo por red, nos aparecerá el menú de FOG Project. Pulsamos en “Quick Registration” para inventariar el equipo. El proceso de inventariado tardará unos minutos en completarse.

fog5

Cuando el inventariado haya finalizado, el equipo aparecerá en la lista de hosts de FOG Project.

fog6

Crear una imagen

Para crear una imagen, pulsamos primero tenemos que dirigirnos a la pestaña “Images” y pulsar en “Create New Image”. Rellenamos los campos con la información de la imagen que queremos crear y pulsamos en “add”.

fog7

Una vez creada la plantilla de la imagen, nos dirigimos a la pestaña “Hosts” y pulsamos sobre el host que hemos inventariado anteriormente. Desplegamos el campo “Host Image”, seleccionamos la plantilla de la imagen que hemos creado y pulsamos en “Update”.

fog8

Clonar un equipo

Para clonar un equipo, nos dirigimos a la pestaña “Hosts”, en la columna “Task” de los hosts, podemos ver que hay varios botones. Pulsamos en el botón naranja con el icono de la flecha apuntando hacia arriba.

fog9

Cuando pulsemos en el botón, nos aparecerán varias opciones. Para la tarea de clonar un equipo, pulsammos en “Task”.

fog10

Ahora tenemos que iniciar el equipo que queremos clonar por red. Y si todo ha ido bien, el equipo se clonará automáticamente.

fog11

Y con esto ya hemos clonado un equipo con FOG Project.

Restaurar un equipo

Para hacer esta prueba más realista he borrado parte del disco de la máquina virtual y ya no arranca.

fog12

Para Restaurar un equipo, nos dirigimos a la pestaña “Hosts”, en la columna “Task” de los hosts, podemos ver que hay varios botones. Pulsamos en el botón verde con el icono de la flecha apuntando hacia abajo.

fog13

Cuando pulsemos en el botón, nos aparecerán varias opciones. Para la tarea de restaurar un equipo, pulsammos en “Task”.

fog14

Ahora tenemos que iniciar el equipo que queremos restaurar por red. Y si todo ha ido bien, el equipo se restaurará automáticamente.

fog15

Una vez restaurado el equipo, ya podremos arrancarlo para comprobar que todo ha ido bien.

Como podemos ver el equipo ha arrancado correctamente y ya está restaurado.

fog16

Con esto ya hemos restaurado un equipo con FOG Project.

Y con todo esto ya hemos instalado Fog Project en Debian 12 y hemos realizado pruebas de clonación y restauración de un equipo.