Upgrade Cisco IoT FND on OVA

Device compatibility check

Use the following to check for the validated device versions that are compatible with Cisco IoT FND Release 5.0. The release versions mentioned in this topic are only the list of validated versions by Cisco IoT FND and is not exhaustive. We recommend you to upgrade your devices to these validated versions, and it is not a mandate.

  • FAR compatibility: See supported device types and versions on Cisco IoT FND Release Notes 5.0

  • HER compatibility: See supported device types and versions on Cisco IoT FND Release Notes 5.0

  • HSM compatibility: See upgrade hardware security module compatibility on Cisco IoT FND Release Notes 5.0

  • TPS compatibility: The TPS server version must match the Cisco IoT FND release version. For example, If you're upgrading to Cisco IoT FND Release 5.0 from Cisco IoT FND Release 4.12.1, your TPS server should be upgraded to Cisco IoT FND Release 5.0.

  • Cisco IoT FND compatibility: On initial installation, upgrade the OpenSSH package in the Cisco IoT FND server to RHEL version 8.8 and later versions.

Check the Postgres DB status

Performing this task helps you verify the system and database status before upgrading Cisco IoT FND on OVA.

Before you begin

  • Take a snapshot of the existing VM before you upgrade.

  • Perform a backup of cgms.properties file and cgms_keystore file in the location, /opt/fnd/data/. You can either SCP these files to another server for backup or you can copy in the same or different folder. Here's an example:
    root@iot-fnd:~[root@iot-fnd ~]# 
                  root@iot-fnd:~[root@iot-fnd ~]# cd /opt/fnd/data
                  root@iot-fnd:/opt/fnd/data[root@iot-fnd data]# 
                  root@iot-fnd:/opt/fnd/data[root@iot-fnd data]#ls 
                  cgms_keystore  cgms.properties  cisco-sudi-ca.pem  userPropertyTypes.xml
                  root@iot-fnd:/opt/fnd/data[root@iot-fnd data]# 
                  root@iot-fnd:/opt/fnd/data[root@iot-fnd data]# cp cgms.properties cgms.properties_backup_09May2025
                  [root@iot-fnd data]# keytool -importkeystore -srckeystore cgms_keystore -destkeystore cgms_keystore_backup_9May2022 -deststoretype PKCS12
                  Importing keystore cgms_keystore to cgms_keystore_backup_9May2022...
                  Enter destination keystore password:
                  Re-enter new password:
                  Enter source keystore password:
                  Entry for alias cgms successfully imported.
                  Entry for alias cisco_sudi successfully imported.
                  Entry for alias jmarconi successfully imported.
                  Import command completed:  3 entries successfully imported, 0 entries failed or cancelled
                  [root@iot-fnd data]#
                  [root@iot-fnd data]# ls
                  cgms_keystore                  cgms_keystore.selfsigned  cgms.properties_backup_09May2022  fnd_psk.keystore
                  cgms_keystore_backup_9May2025  cgms.properties           cisco-sudi-ca.pem                 userPropertyTypes.xml
                  [root@iot-fnd data]#
  • Ensure that the Postgres services are running before perfomring an upgrade.

Procedure


Step 1

Using the SSH terminal and navigate to the root directory.

Step 2

Run the following command:

Example:

/opt/scripts/status.sh
[root@iot-fnd ~]# /opt/scripts/status.sh
            --------------------
            ● postgresql-12.service - PostgreSQL 12 database server
            Loaded: loaded (/usr/lib/systemd/system/postgresql-12.service; enabled; vendor preset: disabled)
            Active: active (running) since Mon 2022-05-09 02:01:29 PDT; 2h 6min ago
            Docs: https://www.postgresql.org/docs/12/static/
            Main PID: 27638 (postmaster)
            Tasks: 26
            Memory: 250.5M
            CGroup: /system.slice/postgresql-12.service
            --------------------
            ● influxdb.service - InfluxDB is an open-source, distributed, time series database
            Loaded: loaded (/usr/lib/systemd/system/influxdb.service; enabled; vendor preset: disabled)
            Active: active (running) since Mon 2022-05-09 02:02:39 PDT; 2h 5min ago
            Docs: https://docs.influxdata.com/influxdb/
            Main PID: 27892 (influxd)
            Tasks: 21
            Memory: 219.0M
            --------------------
            ● kapacitor.service - Time series data processing engine.
            Loaded: loaded (/usr/lib/systemd/system/kapacitor.service; enabled; vendor preset: disabled)
            Active: active (running) since Mon 2022-05-09 02:02:06 PDT; 2h 5min ago
            Docs: https://github.com/influxdb/kapacitor
            Main PID: 27805 (kapacitord)
            Tasks: 14
            Memory: 21.0M
            --------------------
            fnd-container is running, pid=61255
            CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
            a02e6388607d        fnd-container       6.44%               2.612GiB / 23.38GiB   11.17%              17MB / 13.7MB       20.3MB / 2.64MB     580
            --------------------
            fogd-container is running, pid=63469
            CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
            a40aa29e2392        fogd-container      6.38%               2.18GiB / 23.38GiB   9.32%               434kB / 135kB       8.19kB / 145kB      99
            --------------------
            [root@iot-fnd ~]#
            docker version
            [root@iot-fnd ~]# docker version
            Client: Docker Engine - Community
            Version:           19.03.15
            API version:       1.40
            Go version:        go1.13.15
            Git commit:        99e3ed8919
            Built:             Sat Jan 30 03:17:57 2021
            OS/Arch:           linux/amd64
            Experimental:      false
            Server: Docker Engine - Community
            Engine:
            Version:          19.03.15
            API version:      1.40 (minimum version 1.12)
            Go version:       go1.13.15
            Git commit:       99e3ed8919
            Built:            Sat Jan 30 03:16:33 2021
            OS/Arch:          linux/amd64
            Experimental:     false
            containerd:
            Version:          1.4.4
            GitCommit:        05f951a3781f4f2c1911b05e61c160e9c30eaa8e
            runc:
            Version:          1.0.0-rc93
            GitCommit:        12644e614e25b05da6fd08a38ffa0cfe1903fdec
            docker-init:
            Version:          0.18.0
            GitCommit:        fec3683
            You have new mail in /var/spool/mail/root
            [root@iot-fnd ~]#
            /opt/fnd/scripts/fnd-container.sh status
            [root@iot-fnd ~]# /opt/fnd/scripts/fnd-container.sh status
            fnd-container is running, pid=61255
            CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
            a02e6388607d        fnd-container       6.47%               2.613GiB / 23.38GiB   11.18%              17MB / 13.8MB       20.3MB / 2.64MB     592
            [root@iot-fnd ~]#
            You have new mail in /var/spool/mail/root
            [root@iot-fnd ~]#
            docker exec -it fnd-container /etc/init.d/cgms status
            [root@iot-fnd ~]# docker exec -it fnd-container /etc/init.d/cgms status
            IoT-FND Version 4.7.2-8
            05-09-2022 04:09:46 PDT: INFO: IoT-FND database server: 192.68.5.1
            05-09-2022 04:09:47 PDT: INFO: IoT-FND database connection verified.
            05-09-2022 04:09:47 PDT: INFO: IoT FND timeseries database server: 192.68.5.1
            05-09-2022 04:09:47 PDT: INFO: IoT FND kapacitor server: 192.68.5.1
            05-09-2022 04:09:47 PDT: INFO: IoT-FND timeseries database/kapacitor connection verified.
            05-09-2022 04:09:49 PDT: INFO: IoT-FND application server is up and running.
            05-09-2022 04:09:50 PDT: INFO: IoT-FND is up and running.
            [root@iot-fnd ~]#
            rpm -qa | grep -i postgres
            root@iot-fnd:/opt/fnd/data[root@iot-fnd data]# rpm -qa | grep -i postgres
            postgresql96-devel-9.6.15-1PGDG.rhel7.x86_64
            postgresql96-libs-9.6.15-1PGDG.rhel7.x86_64
            postgresql96-server-9.6.15-1PGDG.rhel7.x86_64
            postgresql96-9.6.15-1PGDG.rhel7.x86_64
            cgms-postgres-4.5.1-11.x86_64
            postgresql96-contrib-9.6.15-1PGDG.rhel7.x86_64
            root@iot-fnd:/opt/fnd/data[root@iot-fnd data]# 

You can view all the statuses of your Cisco IoT FND on OVA before proceeding with an upgrade.

Cisco IoT FND on OVA upgrade matrix

The following table provides a detailed overview of the versions of different software components bundled with each Cisco IoT FND release.

Cisco IoT FND version

Postgres version

Docker server version

RHEL OS version

5.0.0

12.12

19.03.15

8.10

4.12.0

12.12

19.03.15

8.8

4.11.0

12.12

19.03.15

8.8

4.10.0

12.12

19.03.15

8.7

4.9.1

12.12

19.03.15

8.6

4.9.0

12.9

19.03.15

8.6

Verify and reset the expired root password

The root password must be valid and active before running the Cisco IoT FND upgrade. During the upgrade, scripts invoke sudo to execute multiple commands. If the root password has expired or is not set, sudo authentication fails. As a result, the upgrade stops..

Before you begin

Use these steps to verify the status of the root password and reset it if it has expired:

Procedure


Step 1

Enter the ESXi server's Internet Protocol (IP) address in a web browser and log in with your ESXi credentials.

Step 2

From the left pane, select the Cisco IoT FND VM.

Step 3

Click Console and select Open Console in new tab.

The RHEL server launches.

Step 4

Log in with your Cisco IoT FND server user credentials.

Step 5

Access the Cisco IoT FND Shell terminal.

Step 6

Enter the following command to verify the root password status:

Example:

[fnduser@iot-fnd ~]$ sudo -i
[root@iot-fnd ~]# sudo test
Table 1. Root password status
If the root password is Then

active

[root@iot-fnd ~]#

you can run the upgrade script. For upgrade instructions, refer to the next topics in this chapter.

expired and the sudo authentication fails with the following error:

sudo: Account or password is expired, reset your password and try again

Current password:

sudo: unable to change expired password: Authentication token manipulation error

you must reset the root password. For instructions, go to step 7

Step 7

Run the following command to reset the root password:

Example:

[root@iot-fnd ~]# passwd
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Step 8

Run the following command to verify the sudo command.

Example:

[root@iot-fnd ~]# sudo test
[root@iot-fnd ~]#

After the root password is active, sudo commands will run successfully without authentication errors during the upgrade.

Upgrade the database and docker server image

To ensure compatibility and security, upgrade the database and docker server image for Cisco IoT FND.

To upgrade the database and the docker server image, run the rpm scripts and auto-integrate the DB with Cisco IoT FND scripts.

Before you begin

  • Cisco IoT FND OVA upgrade will not upgrade the RHEL OS version. The RHEL version differs for different versions of Cisco IoT FND. After upgrading the OVA, we recommend you to upgrade the OS sooner than later. Although Cisco IoT FND is a secure application, OS security and patches must be regularly updated in accordance to guidance from Cisco.

  • Ensure that you use the following procedure to upgrade from Cisco IoT FND Release 4.9.x, 4.10.x, 4.11.x, and 4.12.x versions to Cisco IoT FND Release 5.0.x

Procedure


Step 1

Obtain the Cisco IoT FND upgrade scripts from Cisco.

Step 2

Check the RHEL OS version before upgrading Cisco IoT FND OVA to Cisco IoT FND Release 5.0 or higher.

Example:

[root@fnd451testupgrade ~]# hostnamectl
            Static hostname: fnd451testupgrade
            Icon name: computer-vm
            Chassis: vm
            Machine ID: 58eb8d728d834d28ad426eca3c9b9c4e
            Boot ID: 40511dab9f4b4beaa8de82fb105423c9
            Virtualization: vmware
            Operating System: Red Hat Enterprise Linux
            CPE OS Name: cpe:/o:redhat:enterprise_linux:7.5:GA:server
            Kernel: Linux 3.10.0-862.el7.x86_64
            Architecture: x86-64
            [root@fnd451testupgrade ~]#r

Step 3

Extract the cgms rpms files to the Cisco IoT FND server.

Example:

If you are upgrading the DB and the docker server image for Cisco IoT FND release 5.0:

  1. Download the following upgrade script from Cisco.

    CISCO-IOTFND-VPI-K9-UPGRADE-SCRIPTS-5.0-101.zip
  2. Extract the file to get the rpm:

    upgrade-ova-5.0-101.rpm
  3. Transfer the extracted rpm file to the Cisco IoT FND server.

Step 4

Navigate to the directory where the rpm file is located.

Example:

cd /opt or any directory where the upgrade-ova-5.0-101.rpm file is copied.

Step 5

Run the following upgrade script:

Example:

rpm -Uvh upgrade-ova-<release>-<build number>.rpm
root@iot-fnd:/opt[root@iot-fnd opt]# rpm -Uvh upgrade-ova-5-0-2-8.rpm
            Preparing...
            (1%)##############(100%)                                                                                                                  
            Updating / installing... 
            1:upgrade-ova-5-0-2-8
            (1%)##############(100%)
            Started installer in background. Please check ~/rpm.log in few minutes for details.
            root@iot-fnd:/optYou have new mail in /var/spool/mail/root
            [root@iot-fnd opt]# 
            Mon May  9 01:59:29 PDT 2022 Background installer started
            Mon May  9 01:59:29 PDT 2022 Please wait until the 'RPM installation completed' message is logged
            Mon May  9 01:59:29 PDT 2022 Upgrading cgms-postgres-5.0.2-8.x86_64.rpm
            Preparing...                          ########################################
            Updating / installing...
            cgms-postgres-5.0.2-8                 ########################################
            Cleaning up / removing...
            cgms-postgres-5.0-101               ########################################
            Mon May  9 01:59:47 PDT 2022 Upgrading cgms-influx-4.7.2-8.x86_64.rpm
            Preparing...                          ########################################
            Updating / installing...
            cgms-influx-5.0.2-8                   ########################################
            Cleaning up / removing...
            cgms-influx-5.0-101                 ########################################
            Mon May  9 02:00:04 PDT 2022 Upgrading monit-5.25.3-1.el7.x86_64.rpm
            warning: monit-5.25.3-1.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 222b0e83: NOKEY
            Preparing...                          ########################################
            package monit-5.25.3-1.el7.x86_64 is already installed
            Mon May  9 02:00:18 PDT 2022 Stopping services
            Mon May  9 02:00:58 PDT 2022 Upgrading Postgresql to 12.5
            Preparing...                          ########################################
            Updating / installing...
            postgresql12-libs-12.5-1PGDG.rhel7    ########################################
            postgresql12-12.5-1PGDG.rhel7         ########################################
            postgresql12-server-12.5-1PGDG.rhel7  ########################################
            postgresql12-contrib-12.5-1PGDG.rhel7 ########################################
            Cleaning up / removing...
            postgresql12-contrib-12.4-1PGDG.rhel7 ########################################
            postgresql12-server-12.4-1PGDG.rhel7  ########################################
            postgresql12-12.4-1PGDG.rhel7         ########################################
            postgresql12-libs-12.4-1PGDG.rhel7    ########################################
            Mon May  9 02:01:27 PDT 2022 Restarting Postgresql
            Mon May  9 02:01:40 PDT 2022 Stopping InfluxDB and Kapacitor
            Mon May  9 02:01:50 PDT 2022 Upgrading influxdb-1.8.3.x86_64.rpm
            Preparing...                          ########################################
            Updating / installing...
            influxdb-1.8.3-1                      warning: /etc/influxdb/influxdb.conf created as /etc/influxdb/influxdb.conf.rpmnew
            ########################################
            Cleaning up / removing...
            influxdb-1.5.3-1                      ########################################
            Mon May  9 02:02:02 PDT 2022 Upgrading kapacitor-1.5.7-1.x86_64.rpm
            Preparing...                          ########################################
            Updating / installing...
            kapacitor-1.5.7-1                     warning: /etc/kapacitor/kapacitor.conf created as /etc/kapacitor/kapacitor.conf.rpmnew
            ########################################
            Cleaning up / removing...
            kapacitor-1.5.0-1                     ########################################
            Mon May  9 02:02:06 PDT 2022 Restarting InfluxDB and Kapacitor
            Mon May  9 02:02:20 PDT 2022 Stopping Docker
            Mon May  9 02:02:26 PDT 2022 Upgrading Docker to 19.03.15
            warning: container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
            Preparing...   
            (1%)##############(100%)                                                     
            Updating / installing... 
            1:container-selinux-2:2.119.2-1.911  
            (1%)##############(100%)                   
            Cleaning up / removing...
            2:container-selinux-2:2.42-1.gitad8    
            (1%)##############(100%)   
            Preparing...       
            (1%)##############(100%)                                                                                                             
            Updating / installing... 
            1:docker-ce-cli-1:19.03.15-3.el7
            (1%)##############(100%)                               
            2:containerd.io-1.4.4-3.1.el7
            (1%)##############(100%)                        
            3:docker-ce-3:19.03.15-3.el7  
            (1%)##############(100%)    
            /usr/bin/dockerd has not been configured as an alternative for dockerd
            Cleaning up / removing...
            4:docker-ce-3:18.09.6-3.el7   
            (1%)##############(100%)     
            5:containerd.io-1.2.5-3.1.el7 
            (1%)##############(100%)       
            6:docker-ce-cli-1:18.09.6-3.el7         
            (1%)##############(100%)   
            Mon May  9 02:04:11 PDT 2022 Restarting Docker
            Mon May  9 02:04:29 PDT 2022 Restarting services
            Mon May  9 02:04:59 PDT 2022 RPM installation completed

Your Cisco IoT FND on OVA upgrade is complete.

Upgrade Cisco IoT FND container images

Procedure


Step 1

Open the SSH terminal and log in to Cisco IoT server as a root user.

Step 2

Run the following script:

Example:

/opt/fnd/scripts/upgrade.sh 
[root@iot-fnd ~]# /opt/fnd/scripts/upgrade.sh
            This script must be run with root privileges.
            Usage: Load container images: No resource required
            For container reload: No resource required
            1) Load container images
            2) Container reload
            3) Quit
            Enter your choice: 1
            Do you want to download docker image from registry (y/n)?y
            Enter docker registry [devhub-docker.cisco.com]: dockerhub.cisco.com
            Enter docker image tag: 5.0.2-8
            Downloading FND docker image...
            5.0.2-8: Pull complete
            ea3c714182eb: Pull complete
            177abefb5b93: Pull complete
            e696bdc28724: Pull complete
            89dd87262f50: Pull complete
            ff6164c0609f: Pull complete
            89a0b2205b62: Pull complete
            4dbd23bb6e45: Pull complete
            Digest: sha256:2ae8a3cba38ea28156a2c3db55cd8cea0448888a7704479cac33b665d8b2a132
            Status: Downloaded newer image for dockerhub.cisco.com/field-network-director-dev-docker/fnd-image:5.0.2-8
            dockerhub.cisco.com/field-network-director-dev-docker/fnd-image:5.0.2-8
            Downloading Fog Director docker image...
            5.0.2-8: Pulling from fog-director-dev-docker/fogd-image
            5e9a6732a7a3: Pull complete
            55a104320bff: Pull complete
            506e5a93cf62: Pull complete
            9b2523a38071: Pull complete
            8e8389537d47: Pull complete
            e6fcef979884: Pull complete
            e2e278b80221: Pull complete
            63bc79650477: Pull complete
            Digest: sha256:16f3227fbac74804f1e2a77aa57ebeeb5b9f05eb4efb0ddccf242865fe673634
            Status: Downloaded newer image for dockerhub.cisco.com/fog-director-dev-docker/fogd-image:5.0.2-8
            dockerhub.cisco.com/fog-director-dev-docker/fogd-image:5.0.2-8
            1) Load container images
            2) Container reload
            3) Quit
            Enter your choice: 2
            Stopping FND container...
            fnd-container
            Remove FND container...
            fnd-container
            Prune Docker container...
            Starting FND container...
            a02e6388607d79504f082dccf179514e5dc2d6bcd34021beac21baf1a555c266
            Stopping Fog Director container...
            fogd-container
            Remove Fog Director container...
            fogd-container
            Prune Docker container...
            Starting Fog Director container...
            a40aa29e2392e1e99a5f024d3d5838712d66ef638f0c6b0bf209b1932076611c
            1) Load container images
            2) Container reload
            3) Quit
            Enter your choice: 3
            You have new mail in /var/spool/mail/root
            [root@iot-fnd ~]#

Step 3

Enter 1 to load the container images.

Example:

[root@iot-fnd ~]# /opt/fnd/scripts/upgrade.sh
            This script must be run with root privileges.
            Usage: Load container images: No resource required
            For container reload: No resource required
            1) Load container images
            2) Container reload
            3) Quit
            Enter your choice: 1
            Do you want to download docker image from registry (y/n)? y
            Enter docker registry [devhub-docker.cisco.com]: dockerhub.example.com
            Enter docker image tag: 5.0-1
            Downloading FND docker image...
            5.0.2-8: Pulling from example-docker-repo/fnd-image
            a3ed95caeb02: Pull complete
            4e9f1a5e87b7: Pull complete
            bcd8f8dc5c34: Pull complete
            c5e155d5a1d1: Pull complete
            5b8c6e5e9b45: Pull complete
            b5e3b5c3f5b2: Pull complete
            f5b3c27c7f9f: Pull complete
            Digest: sha256:8d3d7b5e8d3f1c2b1e8b2f1b7c9a1234567890abcdef1234567890abcdef1234
            Status: Downloaded newer image for dockerhub.example.com/example-docker-repo/fnd-image:5.0.2-8
            dockerhub.example.com/example-docker-repo/fnd-image:5.0-1
            Downloading Fog Director docker image...
            5.0-1: Pulling from example-docker-repo/fogd-image
            9f9a1c3f5f12: Pull complete
            6c5a9f7e9b34: Pull complete
            8d5e3b3c5f6b: Pull complete
            b5f1c9e7d1b2: Pull complete
            a5c2b6e4f8e7: Pull complete
            d1e3f5b4c6d3: Pull complete
            Digest: sha256:5e8d3f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5g6h7i8j9k
            Status: Downloaded newer image for dockerhub.example.com/example-docker-repo/fogd-image:5.0.2-8
            dockerhub.example.com/example-docker-repo/fogd-image:5.0.2-8
            1) Load container images
            2) Container reload
            3) Quit
            Enter your choice: 3
            [root@iot-fnd ~]#

Step 4

Download the latest container image for Cisco IoT FND from devhub-docker.cisco.com.

Step 5

After the images are downloaded successfully, enter 2 to reload container.

Example:

[root@iot-fnd ~]# /opt/fnd/scripts/upgrade.sh
            This script must be run with root privileges.
            Usage: Load container images: No resource required
            For container reload: No resource required
            1) Load container images
            2) Container reload
            3) Quit
            Enter your choice: 2
            Stopping FND container...
            fnd-container
            Remove FND container...
            fnd-container
            Prune Docker containers...
            Deleted Containers:
            fnd-container
            Starting FND container...
            c8e1f9a8d7c2b3a4e5f6d7c8b9a0b1c2d3e4f5g6h7i8j9k0l1m2n3o4p5q6r7s8
            Stopping Fog Director container...
            fogd-container
            Remove Fog Director container...
            fogd-container
            Prune Docker containers...
            Deleted Containers:
            fogd-container
            Starting Fog Director container...
            b7c6d5e4f3g2h1i0j9k8l7m6n5o4p3q2r1s0t9u8v7w6x5y4z3a2b1c0d9e8f7g6
            1) Load container images
            2) Container reload
            3) Quit
            Enter your choice: 3
            [root@iot-fnd ~]#

Step 6

Enter 3 to quit the menu.


You've upgraded the Cisco IoT FND containers.

Check DB and status post upgrade

Use the following steps to check the DB and Cisco IoT FND status to ensure that your upgrade is successful:

Before you begin

Use the following credentials for SSH access after upgrading OVA:

  • Username: fnduser

  • Password: C!sco123

    See Guidelines for resetting password.

Procedure


Step 1

Log in to the server or machine using SSH.

Step 2

Execute the /opt/scripts/status.sh command:

Example:

/opt/scripts/status.sh
Checking system status...
            Service: Database
            Status: Running
            Uptime: 24 hours
            Service: IoT FND
            Status: Running
            Uptime: 12 hours
            Service: Web Server
            Status: Stopped
            Action Required: Restart service
            Disk Usage:
            Filesystem      Size  Used Avail Use% Mounted on
            /dev/sda1        50G   30G   18G  63% /
            Memory Usage:
            Total: 8GB
            Used:  4GB
            Free:  4GB
            Network Status:
            eth0: Connected
            IP Address: 192.168.1.10
            All critical services are operational except the Web Server. Please address the issues noted above.

Step 3

Execute the docker version command:

Example:

docker version
Client: Docker Engine - Community
            Version:           20.10.14
            API version:       1.41
            Go version:        go1.16.15
            Git commit:        a224086
            Built:             Thu Mar 24 01:50:09 2022
            OS/Arch:           linux/amd64
            Context:           default
            Experimental:      true
            Server: Docker Engine - Community
            Engine:
            Version:          20.10.14
            API version:      1.41 (minimum version 1.12)
            Go version:       go1.16.15
            Git commit:       87a90dc
            Built:            Thu Mar 24 01:48:43 2022
            OS/Arch:          linux/amd64
            Experimental:     false
            containerd:
            Version:          1.5.11
            GitCommit:        3df54a852345ae127d1fa3092b95168e4a88e2f8
            runc:
            Version:          1.0.3
            GitCommit:        f46b6ba2c9314cfc8caae24a32ec5fe9ef1059fe
            docker-init:
            Version:          0.19.0
            GitCommit:        de40ad0

Step 4

Execture the /opt/fnd/scripts/fnd-container.sh status command to check the status of the Cisco IoT FND container:

Example:

/opt/fnd/scripts/fnd-container.sh status
Checking IoT FND container status...
            Container Name: fnd-container
            Status: Running
            Uptime: 36 hours
            CPU Usage: 15%
            Memory Usage: 512MB / 2GB
            Network: Active
            IP Address: 172.17.0.2
            Port Mappings: 8080:80, 8443:443
            Last Health Check: Passed
            Health Check Interval: 5 minutes
            All monitored services within the container are operational.

Step 5

Execute the docker exec -it fnd-container /etc/init.d/cgms status command to check the status of the cgms service inside the Cisco IoT FND container.

Example:

docker exec -it fnd-container /etc/init.d/cgms status
Checking status of cgms service...
            cgms service is running
            PID: 1234
            Uptime: 24 hours
            Listening on Port: 9090
            No issues detected with the cgms service.

You've checked the Cisco IoT FND status to ensure that the upgrade has been successful.

What to do next

Log into Cisco IoT FND to check if the services are working fine. For example, you can refresh the metrics for a couple of devices or add/delete devices using CSV.

Upgrade RHEL version

This section provides references to read about how to perform an in-place upgrade from Red Hat Enterprise Linux 7 (RHEL) to Red Hat Enterprise Linux 8 using the Leapp utility.

Follow the instructions provided in the Red Hat documentation about Upgrading from RHEL 7 to RHEL 8 .