Instalar FOG Server en un contenedor Proxmox | Algo de Linux

viernes, 2 de marzo de 2018

Instalar FOG Server en un contenedor Proxmox

FOG Project es un proyecto de código abierto para clonación y gestión de equipos en red.


En este post vamos a ver cómo instalar FOG Server en un contenedor Proxmox.

Lo primero es crear un contenedor. Para ello, rellenamos los datos de la ficha General


De la pestaña "General" tan sólo destacar que he cargado la clave pública de mi máquina pasarela, con el fin de poder conectarme al servidor vía ssh sin tener que introducir password.

A continuación seleccionamos la plantilla que vamos a utilizar para nuestro contenedor. En mi caso he elegido crear mi contenedor con una plantilla de Debian Jessie:


Si queréis ver algo más de información sobre plantillas y contenedores en Proxmox, os recomiendo echar un vistazo al siguiente post:

En la siguiente ficha "Root Disk" he definido un disco de 100 GB para el contenedor. A priori, sé que tendría que definir un disco más grande porque tenemos varias imágenes de clonación que ocupan mucho espacio. No obstante, más adelante puedo aumentar el espacio:


En la siguiente ficha se define el número de núcleos que va a utilizar la máquina del contenedor. En principio, para mis pruebas, al menos, con 1 núcleo es suficiente. Y si necesitara más, podría aumentar el número de núcleos más adelante:


En la siguiente pestaña he definido que la máquina del contenedor tenga 1GB de memoria RAM. Al lgual que en el caso anterior, es algo que puedo aumentar más adelante:


Tan sólo necesito que esta máquina virtual tenga una interfaz de red y que reciba una dirección IP vía DHCP. Lo he hecho así porque he registrado una IP estática y una entrada DNS para el servidor fogserver en el servidor LDAP del centro. Aunque también podría haber definido una IP estática en la pantalla siguiente:


En la siguiente pestaña, es posible introducir el nombre de dominio DNS y servidores DNS. En mi caso he dejado que use los ajustes del host porque son perfectamente válidos:


Una vez introducida toda la información, nos mostrará un resumen de la configuración que hemos elegido para nuestra máquina virtual:


Como todo es correcto, pulsamos el botón "Finalizado".

Una vez creada la máquina virtual con nuestro Debian Jessie, la iniciamos, nos conectamos a ella por ssh y hacemos una actualización de paquetes para que el sistema se encuentre actualizado antes de instalar fog.

El siguiente paso será descargar fog desde la web. Lo que yo he hecho ha sido copiar la ruta de descarga y descargar el archivo para instalarlo mediante wget:


Pulsamos "Enter" y comenzará el proceso de descarga:


Una vez descargado, el fichero fog_1.5.0.tar.gz, lo descomprimimos y se creará una carpeta con el siguiente nombre: fog_1.5.0

Entramos dentro del directorio bin del directorio fog_1.5.0 y ejecutamos el instalador: ./installfog.sh

Os pego a continuación el procedimiento que yo he seguido respondiendo a las preguntas del asistente de instalación:
root@fog:~/fog_1.5.0/bin# ./installfog.sh 
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.0 Installer/Updater

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

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

  Choice: [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)] 

  What is the IP address to be used by this FOG Server? [172.19.144.68]

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

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

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

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

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

   ######################################################################
   #     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      #
   ######################################################################
   #           ** Notice ** FOG is difficult to setup securely          #
   #        SELinux and IPTables are usually asked to be disabled       #
   #           There have been strides in adding capabilities           #
   #          The recommendations would now be more appropriate         #
   #    to set SELinux to permissive and to disable firewall for now.   #
   #  You can find some methods to enable SELinux and maintain firewall #
   #   settings and ports. If you feel comfortable doing so please do   #
   ######################################################################
   #            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
 * Server IP Address: 172.19.144.68
 * Server Subnet Mask: 255.255.254.0
 * Interface: eth0
 * Installation Type: Normal Server
 * Internationalization: 1
 * Image Storage Location: /images
 * Using FOG DHCP: No
 * DHCP will NOT be setup but you must setup your
 | current DHCP server to use FOG for PXE services.

 * On a Linux DHCP server you must set: next-server and filename

 * On a Windows DHCP server you must set options 066 and 067

 * Option 066/next-server is the IP of the FOG Server: (e.g. 172.19.144.68)
 * Option 067/filename is the bootfile: (e.g. undionly.kpxe)


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

 * Installation Started

 * Installing required packages, if this fails
 | make sure you have an active internet connection.

 * Adding needed repository....................................OK
 * Preparing Package Manager...................................OK
 * Packages to be installed:

 apache2 bc build-essential cpp curl g++ gawk gcc genisoimage gettext gzip htmldoc isolinux lftp libapache2-mod-php5 libc6 libcurl3 liblzma-dev m4 mysql-client mysql-server net-tools nfs-kernel-server openssh-server php-gettext php5 php5-bcmath php5-cli php5-curl php5-fpm php5-gd php5-json php5-mcrypt php5-mysql php5-mysqlnd sysv-rc-conf tar tftp-hpa tftpd-hpa unzip vsftpd wget xinetd zlib1g 


 * Installing package: apache2.................................OK
 * Skipping package:   bc......................................(Already Installed)
 * Installing package: build-essential.........................OK
 * Skipping package:   cpp.....................................(Already Installed)
 * Skipping package:   curl....................................(Already Installed)
 * Skipping package:   g++.....................................(Already Installed)
 * Installing package: gawk....................................OK
 * Skipping package:   gcc.....................................(Already Installed)
 * Installing package: genisoimage.............................OK
 * Installing package: gettext.................................OK
 * Skipping package:   gzip....................................(Already Installed)
 * Installing package: htmldoc.................................OK
 * Installing package: isolinux................................OK
 * Installing package: lftp....................................OK
 * Installing package: libapache2-mod-php5.....................OK
 * Skipping package:   libc6...................................(Already Installed)
 * Skipping package:   libcurl3................................(Already Installed)
 * Installing package: liblzma-dev.............................OK
 * Skipping package:   m4......................................(Already Installed)
 * Installing package: mysql-client............................OK
 * Installing package: mysql-server............................OK
 * Skipping package:   net-tools...............................(Already Installed)
 * Installing package: nfs-kernel-server.......................OK
 * Skipping package:   openssh-server..........................(Already Installed)
 * Installing package: php-gettext.............................OK
 * Installing package: php5....................................OK
 * Skipping package: php5-bcmath...............................(Does not exist)
 * Skipping package:   php5-cli................................(Already Installed)
 * Installing package: php5-curl...............................OK
 * Installing package: php5-fpm................................OK
 * Installing package: php5-gd.................................OK
 * Skipping package:   php5-json...............................(Already Installed)
 * Installing package: php5-mcrypt.............................OK
 * Installing package: php5-mysqlnd............................OK
 * Skipping package:   php5-mysqlnd............................(Already Installed)
 * Installing package: sysv-rc-conf............................OK
 * Skipping package:   tar.....................................(Already Installed)
 * Installing package: tftp-hpa................................OK
 * Installing package: tftpd-hpa...............................OK
 * Installing package: unzip...................................OK
 * Installing package: vsftpd..................................OK
 * Skipping package:   wget....................................(Already Installed)
 * Installing package: xinetd..................................OK
 * Skipping package:   zlib1g..................................(Already Installed)
 * Updating packages as needed.................................OK

 * Confirming package installation

 * Checking package: apache2...................................OK
 * Checking package: bc........................................OK
 * Checking package: build-essential...........................OK
 * Checking package: cpp.......................................OK
 * Checking package: curl......................................OK
 * Checking package: g++.......................................OK
 * Checking package: gawk......................................OK
 * Checking package: gcc.......................................OK
 * Checking package: genisoimage...............................OK
 * Checking package: gettext...................................OK
 * Checking package: gzip......................................OK
 * Checking package: htmldoc...................................OK
 * Checking package: isolinux..................................OK
 * Checking package: lftp......................................OK
 * Checking package: libapache2-mod-php5.......................OK
 * Checking package: libc6.....................................OK
 * Checking package: libcurl3..................................OK
 * Checking package: liblzma-dev...............................OK
 * Checking package: m4........................................OK
 * Checking package: mysql-client..............................OK
 * Checking package: mysql-server..............................OK
 * Checking package: net-tools.................................OK
 * Checking package: nfs-kernel-server.........................OK
 * Checking package: openssh-server............................OK
 * Checking package: php-gettext...............................OK
 * Checking package: php5......................................OK
 * Checking package: php5-cli..................................OK
 * Checking package: php5-curl.................................OK
 * Checking package: php5-fpm..................................OK
 * Checking package: php5-gd...................................OK
 * Checking package: php5-json.................................OK
 * Checking package: php5-mcrypt...............................OK
 * Checking package: php5-mysqlnd..............................OK
 * Checking package: sysv-rc-conf..............................OK
 * Checking package: tar.......................................OK
 * Checking package: tftp-hpa..................................OK
 * Checking package: tftpd-hpa.................................OK
 * Checking package: unzip.....................................OK
 * Checking package: vsftpd....................................OK
 * Checking package: wget......................................OK
 * Checking package: xinetd....................................OK
 * Checking package: zlib1g....................................OK

 * Configuring services

 * Setting up fog user.........................................OK
 * Setting up fog password.....................................OK
 * Stopping FOGMulticastManager Service........................OK
 * Stopping FOGImageReplicator Service.........................OK
 * Stopping FOGSnapinReplicator Service........................OK
 * Stopping FOGScheduler Service...............................OK
 * Stopping FOGPingHosts Service...............................OK
 * Stopping FOGSnapinHash Service..............................OK
 * Stopping FOGImageSize Service...............................OK
 * Setting up and starting MySQL...............................OK
 * Backing up user reports.....................................Done
 * Stopping web service........................................OK
 * Is the MySQL password blank? (Y/n) 
 * Stopping FOGMulticastManager Service........................OK
 * Stopping FOGImageReplicator Service.........................OK
 * Stopping FOGSnapinReplicator Service........................OK
 * Stopping FOGScheduler Service...............................OK
 * Stopping FOGPingHosts Service...............................OK
 * Stopping FOGSnapinHash Service..............................OK
 * Stopping FOGImageSize Service...............................OK
 * Setting up and starting MySQL...............................OK
 * Setting up Apache and PHP files.............................OK
 * Testing and removing symbolic links if found................OK
 * Backing up old data.........................................OK
 * Copying new files to web folder.............................OK
 * Creating the language binaries..............................Done
 * Creating config file........................................OK
 * Unzipping the binaries......................................Done
 * Copying binaries where needed...............................Done
 * Enabling apache and fpm services on boot....................OK
 * Creating SSL CA.............................................OK
 * Creating SSL Private Key....................................OK
 * Creating SSL Certificate....................................OK
 * Creating auth pub key and cert..............................OK
 * Resetting SSL Permissions...................................OK
 * Setting up Apache virtual host (no SSL).....................OK
 * Starting and checking status of web services................OK
 * Changing permissions on apache log files....................OK
 * Backing up database.........................................OK

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

   http://172.19.144.68/fog/management


Si os fijáis en las últimas líneas de la salida anterior, nos dice que debemos instalar/actualizar nuestro esquema de base de datos. Y que ésto podemos hacerlo abriendo el navegador web e introduciendo la siguiente dirección: http://172.19.144.68/fog/management

Así que lo hacemos:


En la ventana anterior pulsamos en botón Install/Update now. Nos confirmará que el proceso de instalación/actualización ha sido realizado:

Si os fijáis en la salida siguiente, una vez hecho ésto, tendremos que ir al terminal y pulsar "Enter" para continuar con el proceso de instalación:

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

 * Setting up storage..........................................OK
Skipped
 * Setting up and starting TFTP and PXE Servers................OK
 * Setting up and starting VSFTP Server........................OK
 * Setting up FOG Snapins......................................OK
 * Setting up UDPCast..........................................OK
 * Configuring UDPCast.........................................OK
 * Building UDPCast............................................OK
 * Installing UDPCast..........................................OK
 * Installing FOG System Scripts...............................OK


 * Configuring FOG System Services


 * Setting FOGMulticastManager script executable...............OK
 * Enabling FOGMulticastManager Service........................OK
 * Setting FOGImageReplicator script executable................OK
 * Enabling FOGImageReplicator Service.........................OK
 * Setting FOGSnapinReplicator script executable...............OK
 * Enabling FOGSnapinReplicator Service........................OK
 * Setting FOGScheduler script executable......................OK
 * Enabling FOGScheduler Service...............................OK
 * Setting FOGPingHosts script executable......................OK
 * Enabling FOGPingHosts Service...............................OK
 * Setting FOGSnapinHash script executable.....................OK
 * Enabling FOGSnapinHash Service..............................OK
 * Setting FOGImageSize script executable......................OK
 * Enabling FOGImageSize Service...............................OK
 * Setting up FOG Services.....................................OK
 * Starting FOGMulticastManager Service........................OK
 * Starting FOGImageReplicator Service.........................OK
 * Starting FOGSnapinReplicator Service........................OK
 * Starting FOGScheduler Service...............................OK
 * Starting FOGPingHosts Service...............................OK
 * Starting FOGSnapinHash Service..............................OK
 * Starting FOGImageSize Service...............................OK
 * Setting up exports file.....................................OK
 * Setting up and starting RPCBind.............................OK
 * Setting up and starting NFS Server..........................OK
 * Linking FOG Logs to Linux Logs..............................OK
 * Linking FOG Service config /etc.............................OK
 * Ensuring node username and passwords match..................Done

 * 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://172.19.144.68/fog/management

   Default User Information
   Username: fog
   Password: password

root@fog:~/fog_1.5.0/bin# 

Una vez terminada la instalación, nos informa de la dirección que debemos introducir para acceder al interfaz de administración de fog, así como el nombre del usuario administrador y su password.

Así que abrimos esa dirección en el navegador e introducimos el nombre de usuario y el password para acceder:


Y entraremos en el Dashboard de nuestro servidor fog:


Publicado por primera vez en http://enavas.blogspot.com.es

2 comentarios:

Administracion informática Luis Chamizo dijo...

Hola Esteban
gracias por tu artículo.
Mi pregunta como adminies: ¿qué ventajas le has visto a FOg sobre otro sistema muy usado en los ies como clonezilla/drbl?
Gracias

Esteban M. Navas Martín dijo...

Hola, Camilo:

Tiene unas cuantas ventajas:

* Dispone de una interfaz de administración vía web.
* La restauración y creación de imágenes se puede realizar de forma remota sin estar en el cliente, simplemente programando el procedimiento y encendiendo el equipo de forma remota para que comience el proceso.
* Realiza un inventariado de las máquinas, registrando automáticamente el hardware del equipo.
* Permite asociar clientes a imágenes, lo que nos evita tener que recordar qué imagen corresponde a cada cliente.
* Lo he implementado en una máquina virtual, lo que me da la ventaja de tener copias de seguridad completas del sistema de clonación y las imágenes.
* Como servidor, se encuentra integrado en la red del centro y disponible permanentemente, lo que me permite programar la creación y restauración de imágenes en cualquier momento.
* Como ya sabes, en mi centro tengo separados los equipos de infolab y los equipos que se conectan vía wifi mediante vlan. Para optimizar, he desplegado un servidor fog auxiliar en la red de los equipos de infolab.

Al igual que clonezilla/drbl:
* Es GPL.
* Está basado en partimage.

El principal inconveniente es que requiere realizar un trabajo inicial en todos los clientes configurando la bios para que los equipos arranquen por red y registrando el cliente.