Instalación del servidor OCS Inventory NG 2.7 en CentOS 8

OCS Inventory NG es una herramienta que permite inventariar nuestro parque de equipos informáticos.

Permite recopilar mediante agentes que se instalan en los equipos clientes información referente al sistema operativo, software instalado, componentes de hardware, etc.

El servidor OCS Inventory NG está compuesta de los siguientes 4 componentes básicos:
  1. Database server: Motor de base de datos que almacena la información del inventario.
  2. Communication server: Servidor que gestiona la comunicación entre el motor de base de datos y agentes remotos mediante el protocolo HTTP.
  3. Administration console: La consola de administración es la herramienta Web que nos permitirá administrar y consultar los datos recopilados por la herramienta.
  4. Deployment server: Servidor para configurar la implementación de paquetes, que requiere el protocolo HTTPS para funcionar.
En este tutorial nos centraremos en los tres primeros componentes del servidor. La instalación y configuración de los agente remotos que recopilan y reportan la información al servidor serán tratados en un post independiente.


Configuración inicial del sistema operativo

  1. Instalar el sistema operativo Linux CentOS 8 con una configuración de tipo servidor con entorno gráfico y comprobar que el servidor cuente con acceso a Internet, al menos temporalmente para instalar los paquetes requeridos más adelante para la instalación de la herramienta.

  2. Ahora nos toca agregar como fuente de datos al contenido del DVD de instalación del sistema operativo como nuevo origen al gestor de paquetes YUM. Para ello nos dirigimos al directorio de configuración /etc/yum.repos.d, hacemos una copia del seguridad del archivo CentOS-Media.repo y lo editamos con los siguientes comandos:
    [root@testsrv ~]# cd /etc/yum.repos.d/
    [root@testsrv yum.repos.d]# cp CentOS-Media.repo CentOS-Media.repo.bkp
    [root@testsrv yum.repos.d]# vim CentOS-Media.repo
    
    Editamos el contenido dejándolo como sigue a continuación:
    [c8-media-BaseOS]
    name=CentOS-BaseOS-$releasever - Media
    baseurl=file:///media/BaseOS
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
    
    Ahora el gestor de paquetes YUM ya tiene configurado la nueva fuente de datos que apunta al directorio local /media. Para que le herramienta pueda instalar paquetes a partir de dicho medio es necesario que montemos el DVD en el mencionado directorio y eso lo logramos con el siguiente comando:
    [root@testsrv yum.repos.d]# mount /dev/cdrom /media
    
    Podemos verificar los paquetes disponibles ejecutando lo siguiente:
    [root@testsrv yum.repos.d]# cd
    [root@testsrv ~]# yum list available
    
  3. Paramos y desactivamos el servicio packagekit para evitar que proceda a descargar actualizaciones en segundo plano sin nuestra autorización:
    [root@testsrv ~]# systemctl stop packagekit
    [root@testsrv ~]# systemctl disable packagekit
    
  4. Para este tutorial voy a deshabilitar el módulo de seguridad SELinux y si esto pone en riesgo o no la seguridad del servidor queda bajo la responsabilidad de cada administrador. Para avanzar con esto procedemos a editar el archivo /etc/selinux/config,
    [root@testsrv ~]# vim /etc/selinux/config
    
    y le configuramos la directiva SELINUX con el valor disabled:
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=disabled
    # SELINUXTYPE= can take one of these two values:
    #     targeted - Targeted processes are protected,
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    
    Una de las formas para que los cambios anteriores toman efecto es reiniciar el sistema operativo, sin embargo también podemos parar el SELinux en el entorno de ejecución actual con el siguiente comando:
    [root@testsrv ~]# setenforce 0
    
  5. Si queremos configurar un servidor ntp específico a partir de donde deseamos sincronizar la fecha y hora del servidor, podemos editar el archivo chrony.conf del directorio /etc:
    [root@testsrv ~]# vim /etc/chrony.conf
    
    Donde configuramos la sección server con nuestro servidor ntp preferido:
    # Use public servers from the pool.ntp.org project.
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    #server 2.centos.pool.ntp.org iburst
    server mi_servidor_ntp_local.gknet.local prefer
    
    Finalmente tenemos que reiniciar el servicio chrony para que los cambios tomen efecto:
    [root@testsrv ~]# systemctl restart chronyd
    
    Para forzar la sincronización de la hora del equipo con el servidor ntp de forma inmediata podemos ejecutar el siguiente comando:
    [root@testsrv ~]# ntpdate -u mi_servidor_ntp_local.gknet.local
    
    Para ver en tiempo real la hora en el servidor, incluyendo los segundos, podemos ejecutar el comando watch. Para salir hay que presionar las teclas CTRL+C.
    [root@testsrv ~]# watch -n 1 date
    
    Every 1,0s: date            Mon Jul  1 11:35:04 2019
    
    lun jul  1 11:35:04 -04 2019
    


Instalación de servidor Apache:

  1. Tenemos que instalar el servidor Apache.
    [root@testsrv ~]# yum install httpd
    [root@testsrv ~]# yum install mod_ssl openssl
    
  2. Para activar el servicio SSL en Apache primero creamos el directorio /etc/httpd/ssl para albergar certificados:
    [root@testsrv ~]# mkdir /etc/httpd/ssl
    
  3. Luego pasamos a ejecutar el comando openssl para generar una nueva llave para nuestro servidor Apache. Al ejecutar el comando nos solicitará que vayamos cargando información para el certificado:
    [root@testsrv ~]# openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
    Generating a 2048 bit RSA private key
    ...............+++
    ...................+++
    writing new private key to '/etc/httpd/ssl/apache.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:PY
    State or Province Name (full name) []:It
    Locality Name (eg, city) [Default City]:HO
    Organization Name (eg, company) [Default Company Ltd]:Gabriel-Corp.
    Organizational Unit Name (eg, section) []:Informatica
    Common Name (eg, your name or your server's hostname) []:testsrv.gknet.local
    Email Address []:contacto(ARROBA)tormentadebits.com
    [root@testsrv ~]#
    
  4. Como estamos usando OpenSSL, se recomienda crear una fuerte clave Diffie-Hellman:
    [root@testsrv ~]# openssl dhparam -out /etc/httpd/ssl/dhparam.pem 2048
    
    El hash code generado por el comando anterior lo tenemos que agregar al certificado apache.crt generado más arriba:
    [root@testsrv ~]# cat /etc/httpd/ssl/dhparam.pem | tee -a /etc/httpd/ssl/apache.crt
    
  5. Luego editamos el archivo de configuración /etc/httpd/conf.d/ssl.conf:
    [root@testsrv ~]# vim /etc/httpd/conf.d/ssl.conf
    
    Y nos ubicamos donde se encuentran las directivas #DocumentRoot y #ServerName:
    # General setup for the virtual host, inherited from global configuration
    #DocumentRoot "/var/www/html"
    #ServerName www.example.com:443
    
    Descomentamos ambas y a la directiva ServerName le asignamos el nombre de servidor que corresponde, en este ejemplo testsrv:
    # General setup for the virtual host, inherited from global configuration
    DocumentRoot "/var/www/html"
    ServerName testsrv:443
    
    Luego pasamos a configurar la directiva SSLCertificateFile a la que le asignamos la ruta al nuevo certificado generado más arriba:
    #   Server Certificate:
    # Point SSLCertificateFile at a PEM encoded certificate.  If
    # the certificate is encrypted, then you will be prompted for a
    # pass phrase.  Note that a kill -HUP will prompt again.  A new
    # certificate can be generated using the genkey(1) command.
    SSLCertificateFile /etc/httpd/ssl/apache.crt
    
    Y finalmente también configuramos la directiva SSLCertificateKeyFile a la que le asignamos la ruta a la nueva llave generada más arriba:
    #   Server Private Key:
    #   If the key is not combined with the certificate, use this
    #   directive to point at the key file.  Keep in mind that if
    #   you've both a RSA and a DSA private key you can configure
    #   both in parallel (to also allow the use of DSA ciphers, etc.)
    SSLCertificateKeyFile /etc/httpd/ssl/apache.key
    
    Guardamos los cambios y salimos del archivo de configuración.

  6. Comprobamos que la configuración de Apache esté correcta con el siguiente comando:
    [root@testsrv ~]# apachectl configtest
    Syntax OK
    [root@testsrv ~]#
    
  7. Terminada la configuración de nuestro servidor Apache, tenemos que habilitar en el Firewall los puertos http y https para que el servidor Apache sea accesible desde equipos remotos.
    [root@testsrv ~]# firewall-cmd --get-active-zones
    libvirt
      interfaces: virbr0
    public
      interfaces: enp0s3
    [root@testsrv ~]# firewall-cmd --zone=public --list-services
    cockpit dhcpv6-client ssh
    [root@testsrv ~]# firewall-cmd --zone=public --permanent --add-service=http
    success
    [root@testsrv ~]# firewall-cmd --zone=public --permanent --add-service=https
    success
    [root@testsrv ~]# systemctl restart firewalld
    [root@testsrv ~]# firewall-cmd --zone=public --list-services
    cockpit dhcpv6-client http https ssh
    [root@testsrv ~]#
    
  8. Habilitamos y arrancamos el servidor de Apache:
    [root@testsrv ~]# systemctl enable httpd
    [root@testsrv ~]# systemctl start httpd
    
  9. Y finalmente probamos si podemos acceder al servicio Apache del servidor introduciendo la URL que corresponde en el navegador de otro equipo de nuestra red local:
    http://ip_del_servidor
    


Configuración de MariaDB

  1. Tenemos que instalar el motor de base de datos MariaDB.
    [root@testsrv ~]# yum install mariadb mariadb-server
    
  2. Abrimos el archivo de configuración del motor de base de datos my.cnf:
    [root@testsrv ~]# vim /etc/my.cnf.d/mariadb-server.cnf
    
    Y agregamos a la sección de configuración [mysqld] la siguiente directiva:
    # Habilita paquetes de hasta 20 MB.
    max_allowed_packet=20M
    
  3. Habilitamos y arrancamos el servidor de MariaDB:
    [root@testsrv ~]# systemctl enable mariadb
    [root@testsrv ~]# systemctl start mariadb
    
  4. Nos conectamos al motor de base de datos con el usuario root y le asignamos una contraseña inicial:
    [root@testsrv ~]# mysql -u root
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 2
    Server version: 5.5.60-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]>
    
  5. Sin desconectarnos pasamos a crear la base de datos que será utilizada desde el mismo servidor:
    MariaDB [(none)]> CREATE DATABASE ocsweb;
    Query OK, 1 row affected (0.00 sec)
    
    MariaDB [(none)]>
    
  6. Creamos un nuevo usuario denominado ocs y le asignamos los privilegios necesarios para acceder a la base de datos ocsweb creada en el punto anterior.
    MariaDB [(none)]> CREATE USER 'ocs'@'localhost' IDENTIFIED BY 'ocspass';
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON ocsweb.* TO 'ocs'@'localhost' WITH GRANT OPTION;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]>
    
  7. Finalmente ejecutamos la siguiente directiva para aplicar los parámetros y salimos del intérprete de comandos de MariaDB ejecutando el comando exit:
    MariaDB [(none)]> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]> exit
    Bye
    [root@testsrv ~]#
    
  8. Por último también es importante ejecutar la directiva mysql_secure_installation y seguir las instrucciones para realizar configuraciones de seguridad adicionales al motor de base de datos. A continuación dejo resaltado en rojo las interacciones realizadas con la herramienta para definir ciertas configuraciones de seguridad:
    [root@testsrv ~]# mysql_secure_installation
    
    NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
          SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
    
    In order to log into MariaDB to secure it, we'll need the current
    password for the root user.  If you've just installed MariaDB, and
    you haven't set the root password yet, the password will be blank,
    so you should just press enter here.
    
    Enter current password for root (enter for none): 
    OK, successfully used password, moving on...
    
    Setting the root password ensures that nobody can log into the MariaDB
    root user without the proper authorisation.
    
    You already have a root password set, so you can safely answer 'n'.
    
    Change the root password? [Y/n] N
     ... skipping.
    
    By default, a MariaDB installation has an anonymous user, allowing anyone
    to log into MariaDB without having to have a user account created for
    them.  This is intended only for testing, and to make the installation
    go a bit smoother.  You should remove them before moving into a
    production environment.
    
    Remove anonymous users? [Y/n] Y
     ... Success!
    
    Normally, root should only be allowed to connect from 'localhost'.  This
    ensures that someone cannot guess at the root password from the network.
    
    Disallow root login remotely? [Y/n] Y
     ... Success!
    
    By default, MariaDB comes with a database named 'test' that anyone can
    access.  This is also intended only for testing, and should be removed
    before moving into a production environment.
    
    Remove test database and access to it? [Y/n] Y
     - Dropping test database...
     ... Success!
     - Removing privileges on test database...
     ... Success!
    
    Reloading the privilege tables will ensure that all changes made so far
    will take effect immediately.
    
    Reload privilege tables now? [Y/n] Y
     ... Success!
    
    Cleaning up...
    
    All done!  If you've completed all of the above steps, your MariaDB
    installation should now be secure.
    
    Thanks for using MariaDB!
    [root@testsrv ~]#
    


Instalación del servidor OCS Inventory desde RPM

  1. Instalamos y activamos el repositorio EPEL (Extra Packages for Enterprise Linux) requerido para suplir algunas dependencias.
    [root@testsrv yum.repos.d]# yum --enablerepo=extras install epel-release
    
  2. Luego procedemos a descargar e instalar los repositorios ocsinventory-release-latest y remi-release-8 que contienen paquetes requeridos para instalar la nueva herramienta en pasos posteriores:
    [root@testsrv ~]# wget https://rpm.ocsinventory-ng.org/ocsinventory-release-latest.el8.ocs.noarch.rpm
    [root@testsrv ~]# wget https://rpms.remirepo.net/enterprise/remi-release-8.rpm
    [root@testsrv ~]# yum install ocsinventory-release-latest.el8.ocs.noarch.rpm remi-release-8.rpm
    
  3. Para la instalación del servidor OCS Inventory debemos ejecutar la siguiente secuencia de comandos:
    [root@testsrv ~]# dnf install yum-utils
    [root@testsrv ~]# yum-config-manager --enable remi
    [root@testsrv ~]# dnf module reset php
    [root@testsrv ~]# dnf module install php:remi-7.3
    [root@testsrv ~]# dnf install --enablerepo=PowerTools ocsinventory
    
  4. Luego editamos el archivo ocsinventory-server.conf del directorio /etc/httpd/conf.d:
    [root@testsrv ~]# vim /etc/httpd/conf.d/ocsinventory-server.conf
    
    Y una vez abierto el archivo buscamos la siguiente directiva:
    # Password for user
      PerlSetVar OCS_DB_PWD ocs
    
    Y le asignamos la misma contraseña que le asignamos al usuario osc del motor de base de datos MariaDB:
    # Password for user
      PerlSetVar OCS_DB_PWD ocspass
    
    La misma configuración también tenemos que realizar en el archivo ocsinventory-restapi.conf:
    [root@testsrv ~]# vim /etc/httpd/conf.d/ocsinventory-restapi.conf
    
  5. Si queremos evitar que aparezca el sitio web de bienvenida de Apache al acceder al documento root (http://ip_o_nombre_dominio_servidor), podemos hacer que automáticamente se redirija al sub-directorio ocsreports (http://ip_o_nombre_dominio_servidor/ocsreports) editando el archivo welcome.conf del directorio /etc/httpd/conf.d:
    [root@testsrv conf.d]# vim /etc/httpd/conf.d/welcome.conf
    
    Y luego agregarle antes de todo la directiva RedirectMatch de la siguiente manera:
    #
    # This configuration file enables the default "Welcome" page if there
    # is no default index page present for the root URL.  To disable the
    # Welcome page, comment out all the lines below.
    #
    # NOTE: if this file is removed, it will be restored on upgrades.
    #
    RedirectMatch ^/$ /ocsreports/
    
    <LocationMatch "^/+$">
        Options -Indexes
        ErrorDocument 403 /.noindex.html
    </LocationMatch>
    
    <Directory /usr/share/httpd/noindex>
        AllowOverride None
        Require all granted
    </Directory>
    
    Alias /.noindex.html /usr/share/httpd/noindex/index.html
    Alias /noindex/css/bootstrap.min.css /usr/share/httpd/noindex/css/bootstrap.min.css
    Alias /noindex/css/open-sans.css /usr/share/httpd/noindex/css/open-sans.css
    Alias /images/apache_pb.gif /usr/share/httpd/noindex/images/apache_pb.gif
    Alias /images/poweredby.png /usr/share/httpd/noindex/images/poweredby.png
    
  6. A continuación necesitamos editar el archivo php.ini ubicado en el directorio /etc para realizar una serie de configuraciones:
    [root@testsrv ~]# vim /etc/php.ini
    
    Y una vez abierto buscamos y modificamos el valor de la directiva post_max_size como sigue:
    ; Maximum size of POST data that PHP will accept.
    ; Its value may be 0 to disable the limit. It is ignored if POST data reading
    ; is disabled through enable_post_data_reading.
    ; http://php.net/post-max-size
    ;post_max_size = 8M
    post_max_size = 201M
    
    y también de la directiva upload_max_filesize:
    ; Maximum allowed size for uploaded files.
    ; http://php.net/upload-max-filesize
    ;upload_max_filesize = 2M
    upload_max_filesize = 200M
    
  7. Procedemos a activar e iniciar el servicio requerido php-fpm:
    [root@testsrv ~]# systemctl enable php-fpm
    [root@testsrv ~]# systemctl start php-fpm
    
  8. El siguiente paso consiste en reiniciar el servidor Apache:
    [root@testsrv ~]# systemctl restart httpd
    
  9. Si todo ha funcionado como corresponde desde nuestro navegador Web favorito colocamos una URL similar a la que sigue (reemplazar el nombre del servidor testsrv por el suyo o bien la dirección IP que hayan usado para el mismo):
    https://testsrv/ocsreports/
    
    Que debería lanzar la siguiente interfaz de usuario para avanzar con la configuración del servidor OCS Inventory. Como se puede observar, se tiene que introducir los datos de conexión del motor de base de datos:

    Una vez cargado los datos que corresponden en cada campo procedemos a presionar el botón Send.

  10. A continuación el asistente web de configuración nos indicará que la instalación ha concluido y que hagamos clic en el enlace asociado al texto "Click here to enter OCS-NG GUI".


  11. A continuación el asistente web nos informa que se puede actualizar el contenido de la base de datos de una versión anterior a la versión más reciente. Para avanzar presionamos el botón Perform the update:


  12. Luego del paso anterior el asistente nos confirmará que la actualización fue realizada exitosamente y que hagamos clic nuevamente en el link "Click here to enter OCS-NG GUI" para acceder a la consola de administración de la herramienta.


  13. En el siguiente paso ya estamos en la interfaz de conexión de la consola de administración de OCS Inventory. Debemos especificar el usuario admin que es el administrador de la herramienta y cuya contraseña por defecto también es la palabra admin:


  14. Autorizada la conexión, la herramienta nos llevará al dashboard donde se muestra una alerta de seguridad que nos informa que el archivo install.php sigue existiendo en el directorio ocsreports:


    La alerta anterior se debe a que alguien podría volver a ejecutar el archivo install.php especificando la URL completa. Para evitar eso nos dirigimos al directorio /usr/share/ocsinventory-reports/ocsreports desde donde movemos el archivo al directorio /etc/ocsinventory y de paso lo renombramos:
    [root@testsrv ~]# cd /usr/share/ocsinventory-reports/ocsreports
    [root@testsrv ocsreports]# mv install.php /etc/ocsinventory/install.php.bkp
    
  15. Si volvemos a refrescar nuestro navegador podremos observar que el mensaje de advertencia desaparece, dejándonos la consola de administración lista para ser utilizada.


    Como no dispongo de mucho tiempo no daré ninguna introducción sobre las opciones de configuración y utilización que ofrece la consola de administración de la herramienta OCS Inventory NG. Además, aún no tengo instalado un agente remoto que suministre información al servidor que se pueda mostrar de ejemplo.


Realización de copias de seguridad

  1. En principio necesitamos definir un directorio en donde ubicar las copias de seguridad realizadas, en mi caso voy a crear una estructura de directorios backups/ocsinventory en el directorio raíz.
    [root@testsrv ~]# mkdir -p /backups/ocsinventory
    
  2. A continuación creamos el archivo bkpocsinventory.sh en el directorio /backups/ocsinventory que contendrá el script que realizará la copia de seguridad, además se le asignará los permisos correspondientes y luego lo editamos:
    [root@testsrv ~]# touch /backups/ocsinventory/bkpocsinventory.sh
    [root@testsrv ~]# chmod 750 /backups/ocsinventory/bkpocsinventory.sh
    [root@testsrv ~]# vim /backups/ocsinventory/bkpocsinventory.sh
    
    y le agregamos el siguiente script bash:
    #!/bin/bash
    # Realiza una copia de seguridad completa de la herramienta OCS Inventory.
    DIA=`date +"%Y%m%d"`
    HORA=`date +"%H%M"`
    BACKUP_PATH=/backups/ocsinventory
     
    # -- OCS
    OCS_REPORTS_WEB=/usr/share/ocsinventory-reports
    OCS_REPORTS_TOOLS=/var/lib/ocsinventory-reports
    OCS_DB_NAME=ocsweb
    OCS_DB_USER=ocs
    OCS_DB_PASS=ocspass
    OCS_DB_BACKUP=$OCS_REPORTS_WEB/ocsinventory-db-bkp.sql
    OCS_APACHE_CONF_PATH=/etc/httpd/conf.d
    OCS_BACKUP_NAME="ocsinventory-bkp-"$DIA"_"$HORA".tgz"
    OCS_BACKUP_LIVE_TIME=30
    
    # -- PATRON LIMPIEZA
    PATRON_BKP_DIARIO=ocsinventory-bkp-*.tgz
     
    # Se procede a exportar la base de datos de OCS Inventory.
    echo
    echo "-->BACKUP DE LA BASE DE DATOS DE OCS INVENTORY"
    echo "===================================================================="
    echo "Exportando la base de datos de OCS Inventory a partir de MySQL. Aguarde un momento..."
    mysqldump -v -u $OCS_DB_USER -p$OCS_DB_PASS --database $OCS_DB_NAME > $OCS_DB_BACKUP
    echo "Fin del proceso de exportacion."
    echo
     
    # Se generan los archivos con todas las copias de seguridad para ser enviadas a una unidad de cinta.
    echo
    echo "-->CREANDO FULL BACKUP DE OCS INVENTORY"
    echo "===================================================================="
    tar -czf $BACKUP_PATH/$OCS_BACKUP_NAME $OCS_REPORTS_WEB $OCS_REPORTS_TOOLS $OCS_APACHE_CONF_PATH/ocsinventory-*
     
    # Para no llenar el disco duro con backups, se eliminan todos los backups diarios pasados la cantidad
    # de dias especificados en la variable OCS_BACKUP_LIVE_TIME.
    echo
    echo "-->LIMPIEZA DE BACKUPS ANTIGUOS"
    echo "===================================================================="
    find $BACKUP_PATH/$PATRON_BKP_DIARIO -mtime +$OCS_BACKUP_LIVE_TIME -exec rm {} \;
    
    # Mensaje de finalizacion:
    echo
    echo "-->FIN DE BACKUP"
    echo
    
    En este punto ya podemos probar la ejecución del script de la siguiente manera:
    [root@testsrv ~]# /backups/ocsinventory/bkpocsinventory.sh
     
    -->BACKUP DE LA BASE DE DATOS DE OCS INVENTORY 
    ==================================================================== 
    Exportando la base de datos de OCS Inventory a partir de MySQL. Aguarde un momento... 
    Info: Using unique option prefix 'database' is error-prone and can break in the future. Please use the full name 
    'databases' instead. 
    -- Connecting to localhost... 
    -- Retrieving table structure for table accesslog... 
    -- Sending SELECT query... 
    -- Retrieving rows... 
    ....
    ....
    -- Retrieving rows... 
    -- Disconnecting from localhost... 
    Fin del proceso de exportacion. 
    
    -->CREANDO FULL BACKUP DE OCS INVENTORY 
    ==================================================================== 
    tar: Eliminando la `/' inicial de los nombres 
    tar: Eliminando la `/' inicial de los objetivos de los enlaces 
    
    -->LIMPIEZA DE BACKUPS ANTIGUOS 
    ==================================================================== 
    
    -->FIN DE BACKUP 
    
    [root@testsrv ~]#
    
    Y al finalizar ya podríamos ver la copia de seguridad generada en el directorio /backups/ocsinventory:
    [root@testsrv ~]# ls -l /backups/ocsinventory
    total 2732
    -rwxr-x---. 1 root root    1749 abr 19 01:42 bkpocsinventory.sh
    -rw-r--r--. 1 root root 2793315 abr 19 01:43 ocsinventory-bkp-20200419_0143.tgz
    [root@testsrv ~]#
    
  3. Para programar la ejecución periódica del script debemos agregar una tarea programada. Para ello creamos el archivo ocsinventory en el directorio /etc/cron.d:
    [root@testsrv ~]# touch /etc/cron.d/ocsinventory
    [root@testsrv ~]# vim /etc/cron.d/ocsinventory
    
    Para luego agregarle el siguiente contenido:
    # Backup OCS Inventory
    30 22 * * * root /backups/ocsinventory/bkpocsinventory.sh > /backups/ocsinventory/bkpocsinventory.log 2>&1
    
    Finalmente reiniciamos el servicio cron para que la tarea programada sea funcional.
    [root@testsrv ~]# systemctl restart crond
    
    Y hasta aquí va el artículo de hoy, veremos cuando sale el artículo sobre la instalación de los agentes.


Referencias y enlaces útiles:

  1. http://wiki.ocsinventory-ng.org/03.Basic-documentation/Setting-up-a-OCS-Inventory-Server-with-rpm/
  2. https://kifarunix.com/install-ocs-ng-inventory-on-centos-8/
  3. http://wiki.ocsinventory-ng.org/03.Basic-documentation/Updating-the-server/
  4. http://wiki.ocsinventory-ng.org/10.Plugin-engine/Using-plugins-installer/
  5. http://wiki.ocsinventory-ng.org/02.Basic-documentation/Deploying-database-server/
  6. http://wiki.ocsinventory-ng.org/02.Basic-documentation/Setting-up-a-OCS-Inventory-Server/#under-linux-operating-system
  7. https://plugins.ocsinventory-ng.org
  8. https://proyectosbeta.net/2015/05/instalar-httpd-con-ssl-en-centos-7
  9. https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-apache-for-centos-7
  10. https://www.esquis.net/instalacion-y-configuracion-de-servidor-ocs-inventory-ng-en-ubuntu-17-04
  11. http://ocsinventory.blogspot.com/2014/11/crear-certificado-autofirmado-pa-ocs.html

Comentarios

  1. Muy interesante, justo ayer implemente un servidor como tu indicas. Lo que hice diferente fue crear un nuevo user superadministrador, borrar el que hay por defecto (admin), crear un nuevo usuario en la base de datos mariadb con permisos totales a la bd ocsweb y cambiar los archivos que conectan con la bd.
    Ahora me encuentro con el problema que al instalar desde los rpm del repositorio no consigo que se instalen los plug-in y parece que el rpm crea la carpeta extensions en otro sitio diferente a la que el sistema espera. asi que o encuentro donde estan definidas esta rutas o esperar a un nuevo parche.

    Genial tu articulo.

    ResponderEliminar

Publicar un comentario