Subscribe to Email Updates

    Installation | 13 min read

    How to Deploy Nodeum - Mode Single Node ?

    Mode Single Node - Install Nodeum software on-premise in using the Ansible deployment tools

    Watch the Video :

    • Requirements
    • Installation
    • Post-installation checks


    1. Choose the platform where you want to deploy on
      - Virtual Machine
      - Physical Server 
      See the Server Specification for more details
    2. Internet Connexion for downloading the packages
    3. CentOS 7.9/RHEL 7.9

    Install the Operating system

    Nodeum supports the following distributions:

    • CentOS 7.9
    • RHEL 7.9


    • Root User Access is required.
    • SELinux is disabled (this will be managed at deployment and will require a reboot).
    • The system must be up to date.

    If you are running CentOS or RHEL, keep your system up-to-date as follows:

    # RHEL or CentOS

    [root@NODEUM ~]# sudo yum update -y
    [root@NODEUM ~]# sudo reboot


    Nodeum will define one user which needs ID : 1000.  This ID is created automatically when the package is deployed.

    If a user already use these ID, you have to change their id :

    [root@NODEUM~]# usermod -u 1001 "username"

    It is the same for group, where group ID 1000 and group ID 1001 needs to be available. If group already use these ID, you have to change their id :

    [root@NODEUM~]# groupmod -g 1002 "groupname"


    • The installation will be done by Ansible (this is managed at deployment).

    Installation & Update from Release 1.90 and higher

    Installation of prerequisite packages :

    [root@NODEUM ~]# yum install python3-pip
    [root@NODEUM ~]# pip3 install --upgrade pip
    [root@NODEUM ~]# pip3 install ansible
    [root@NODEUM ~]# pip3 install jinja2 --upgrade
    [root@NODEUM ~]# pip3 install netaddr --upgrade

    Note: if ansible is preinstall, we recommand to remove it to have the good version (min 2.10.3)

    To deploy the Nodeum Package, follow these instructions WITH INTERNET CONNECTION

    [root@NODEUM ~]# yum install wget
    [root@NODEUM ~]# wget
    [root@NODEUM ~]# tar -xvzf /root/nodeum-xxx.tar.gz
    [root@NODEUM]# cd v1-9xx-xx
    [root@NODEUM v1-9xx]# ansible-playbook check_install.yml
    [root@NODEUM v1-9xx]# ansible-playbook install.yml

    To deploy the Nodeum Package, follow these instructions WITHOUT INTERNET CONNECTION

    [root@NODEUM ~]# yum install wget
    [root@NODEUM ~]# wget
    [root@NODEUM ~]# wget
    [root@NODEUM ~]# tar -xvzf /root/nodeum-V1-9XXX.tar.gz
    [root@NODEUM ~]# tar -xvzf nodeum-offline-addon-v1.93.0-2.1.tar.gz --strip-components=1 -C ./v1-93-2/
    [root@NODEUM]# cd v1-9xx
    [root@NODEUM v1-xx]# ansible-playbook check_install.yml
    [root@NODEUM v1-xx]# ansible-playbook install.yml -e @vars/offline.yml

    Be aware that this installation will disable all other yum repositories.

    For your convenience, a backup of /etc/yum.conf will be created.

    See the example :

    [root@NODEUM ~]# yum install wget

    Loaded plugins: fastestmirror

    Loading mirror speeds from cached hostfile

    * base:

    * extras:

     * updates:

    Resolving Dependencies

    --> Running transaction check

    ---> Package wget.x86_64 0:1.14-18.el7 will be installed

    --> Finished Dependency Resolution

    Dependencies Resolved


    Package         Arch              Version                Repository       Size



    wget            x86_64            1.14-18.el7            base            547 k

    Transaction Summary


    Install  1 Package

    Total download size: 547 k

    Installed size: 2.0 M

    Is this ok [y/d/N]: y

    Downloading packages:

    wget-1.14-18.el7.x86_64.rpm                                | 547 kB   00:00   

    Running transaction check

    Running transaction test

    Transaction test succeeded

    Running transaction

     Installing : wget-1.14-18.el7.x86_64                                      1/1

      Verifying  : wget-1.14-18.el7.x86_64                                      1/1


      wget.x86_64 0:1.14-18.el7                                                    


    [root@NODEUM ~]# wget

    --2020-12-10 14:57:08--


    Connecting to||:80... connected.

    HTTP request sent, awaiting response... 200 OK

    Length: 19137127 (18M) [application/octet-stream]

    Saving to: “nodeum-vxx.tar.gz”

    100%[====================================================================>] 19,137,127  7.38M/s   in 2.5s   

    2019-03-07 14:57:10 (7.38 MB/s) - “nodeum-vxx.tar.gz” saved [19137127/19137127]

    [root@NODEUM ~]# tar -xvzf /root/nodeum-xxx.tar.gz

    Archive:  nodeum-xxx.tar.gz
    creating: v1-xx/
    inflating: v1-xx/ansible.cfg  
     inflating: v1-xx/install       
     inflating: v1-xx/install.yml   
     inflating: v1-xx/localhost     
      creating: v1-xx/migration-from-rhel6/
     inflating: v1-xx/migration-from-rhel6/1-backup
     inflating: v1-xx/migration-from-rhel6/2-install-centos7
     inflating: v1-xx/migration-from-rhel6/3-install-nodeum
     inflating: v1-xx/migration-from-rhel6/4-restore-1
     inflating: v1-xx/migration-from-rhel6/5-update-db
     inflating: v1-xx/migration-from-rhel6/6-restore-2
     inflating: v1-xx/migration-from-rhel6/my.cnf
      creating: v1-xx/roles/
      creating: v1-xx/roles/ansible-role-configuration/
      creating: v1-xx/roles/ansible-role-configuration/defaults/
     inflating: v1-xx/roles/ansible-role-configuration/defaults/main.yml
      creating: v1-xx/roles/ansible-role-configuration/tasks/
     inflating: v1-xx/roles/ansible-role-configuration/tasks/final.yml
     inflating: v1-xx/roles/ansible-role-configuration/tasks/folders.yml
     inflating: v1-xx/roles/ansible-role-configuration/tasks/main.yml
     inflating: v1-xx/roles/ansible-role-configuration/tasks/permissions.yml
     inflating: v1-xx/roles/ansible-role-configuration/tasks/yum.yml
      creating: v1-xx/roles/ansible-role-configuration/vars/
     inflating: v1-xx/roles/ansible-role-configuration/vars/main.yml
      creating: v1-xx/roles/ansible-role-core/
      creating: v1-xx/roles/ansible-role-core/defaults/
      inflating: v1-xx/roles/ansible-role-core/defaults/main.yml


     inflating: v1-xx/roles/rvm.ruby/vars/main.yml
     inflating: v1-xx/site.yml      
      creating: v1-xx/vars/
     inflating: v1-xx/vars/common.yml
     inflating: v1-xx/vars/core.yml 
     inflating: v1-xx/vars/db_mongo.yml
     inflating: v1-xx/vars/db_mysql.yml
     inflating: v1-xx/vars/scheduler.yml
     inflating: v1-xx/vars/solr.yml 
     inflating: v1-xx/vars/web.yml  
     inflating: v1-xx/vars/ws_xml.yml
    [root@NODEUM]# cd v1-9xx-xx
    [root@NODEUM v1-xx]# ansible-playbook check_install.yml
    [root@NODEUM v1-xx]# ansible-playbook install.yml

    TASK [ansible-role-systemd-service : enable service] ***************************************************************************************************************************************************************************************************************************

    ok: [general_host] => (item={'value': {u'description': u'Service for Nodeum MountPoint Scanning', u'after': u'', u'restart_sec': u'1', u'exec_start': u'/usr/mtc/mount_point_scanning/mount_point_scanning', u'wanted_by': u'', u'working_directory': u'/usr/mtc/mount_point_scanning', u'type': u'simple', u'restart': u'always', u'user': u'root'}, 'key': u'nodeum_mount_point_scanning'})  

    TASK [ansible-role-mount-point-scanning : Reload daemon] ***********************************************************************************************************************************************************************************************************************

    ok: [general_host]

    TASK [ansible-role-mount-point-scanning : Start nodeum_mount_point_scanning service] *******************************************************************************************************************************************************************************************

    changed: [general_host]

    RUNNING HANDLER [ansible-role-systemd-service : restart service] ***************************************************************************************************************************************************************************************************************

    changed: [general_host] => (item={'value': {u'description': u'Service for Nodeum MountPoint Scanning', u'after': u'', u'restart_sec': u'1', u'exec_start': u'/usr/mtc/mount_point_scanning/mount_point_scanning', u'wanted_by': u'', u'working_directory': u'/usr/mtc/mount_point_scanning', u'type': u'simple', u'restart': u'always', u'user': u'root'}, 'key': u'nodeum_mount_point_scanning'})

    PLAY RECAP *********************************************************************************************************************************************************************************************************************************************************************

    general_host               : ok=198  changed=91   unreachable=0    failed=0    skipped=56   rescued=0    ignored=3 

    [root@NODEUM v1xx]#


    ❗ Possible error during a local installation

    If you install Nodeum in local Mode, you might be faced to this type of Ansible error :

    You need to restart the linux system to take into account a change and relaunch the Ansible.


    • This error appears only during the first Installation.  Not for the update.
    * Conflicts between Percona and Mysql :

    If you are faced to this error message :

    Transaction check error:
    file /etc/my.cnf from install of mysql-community-server-5.7.28-1.el7.x86_64 conflicts with file from package Percona-Server-shared-56-5.6.46-rel86.2.1.el7.x86_64

    This means you have a library conflict, for solving this, you have to remove this library : "Percona-Server-shared-56"
    yum remove Percona-Server-shared-56
    And then restart the Ansible.
    • MariaDB Credential error :
      TASK [nodeum.mariadb : Set MariaDB root password for the first time (root@localhost)] ************************************************************************************************************************

      fatal: [srv01]: FAILED! => changed=false

      msg: 'unable to connect to database, check login_user and login_password are correct or /root/.my.cnf has the credentials. Exception message: ''database'' is an invalid keyword argument for this function'

      Solution : 

      Execute the following command :

      # ansible-galaxy collection install community.mysql

      and then restart the Ansible


    Restart the server VM or Physical

    Nodeum is now ready to use, you can access it through your browser at this url : http://your nodeum ip address/ or via your favorite DNS name.

    Post-installation checks

    Run this check script on the server to validate that all processes and up and running.

    [root@nodeum]# nodeumctl ps
    root 37468 0.0 0.0 691328 7520 ? Ssl 08:13 0:00 ./core_superv
    root 37489 6.6 1.0 5488832 332072 ? Ssl 08:13 18:06 ./core_manager
    root 37683 0.1 0.0 911272 8532 ? Ssl 08:13 0:17 ./core_fuse -- /mnt/FUSE -odefault_permissions -ohard_remove -oallow_other -obig_writes -
    root 37637 0.0 0.0 298508 2684 ? Ssl 08:13 0:02 ./data_mining
    root 37589 0.2 0.0 847212 24640 ? Ssl 08:13 0:37 ./library_manager
    root 37692 0.0 0.0 604040 3648 ? Ssl 08:13 0:11 ./core_watchdog
    nodeum_+ 10341 14.3 0.7 1566132 248116 ? Ssl Jan26 5602:01 /opt/nodeum/bin/catalog_indexer/catalog_indexer -l -s
    root 1256 0.4 0.8 2603884 274604 ? Ssl Jan02 328:48 /opt/nodeum/bin/mount_point_scanning/mount_point_scanning -l -n nodeum-quali
    root 1253 0.0 0.2 1501292 77228 ? Ssl Jan02 3:33 /opt/nodeum/bin/refparser/nodeum_ws_xml -l -mysql-host -mysq
    root 9604 0.0 0.2 2250004 87820 ? Ssl Jan26 5:22 /opt/nodeum/bin/scheduler/nodeum_scheduler -l -n
    root 2034 0.0 0.0 75564 1928 ? Ss 08:21 0:00 nginx: master process /opt/nginx/sbin/nginx
    nobody 2046 0.0 0.0 75864 3172 ? S 08:21 0:02 \_ nginx: worker process




    If your network configuration requires a Proxy server to reach internet, you need to configure the Proxy servers as follow:

    Configuration Proxy Settings

    [NODEUM:root]# vi /etc/environment
    export http_proxy=http://xxxxx:xxxx
    export https_proxy=http://xxxxx:xxxx
    export ftp_proxy=http://xxxxx:xxxx


    💡Set/Export: http_proxy With Special Characters In Password

    If the proxy server password has special characters such as !,@, you need to to use unicode characters in hexadecimal.

    For example, if your password is : F@o:o!B#ar$, the export http_proxy="http://user:F@o:o!B#ar$" will not work.

    You need to convert the special characters in hexadecimals. In this example @ becomes %40, : becomes %3A, and so on. (You can use for example:

    In our case, the password: F@o:o!B#ar$ is replaced by F%40o%3Ao%21B%23ar%24

    Thus the export http_proxy looks like this:

    export http_proxy=""



    Related Categories


    You may also like:

    Installation Product Specification

    Linux-Based Solution

      Description  Core's Nodeum is built on a Linux-based platform, from this foundation, we added the different required p...


    Extend the Nodeum Cache

    Based on the server type, you have multiple the solution to increase the cache size.

    Installation Product Specification Architecture

    Server Specification

    Prerequisites The solution can be deployed on Physical server (x86 commodity servers) Virtual Server Global Recommendati...

    Let Us Know What You Thought about this Post.

    Put your Comment Below.

    Learn and grow with award-winning support and a thriving community behind you.

    Get the free version