Installing Third-Party Packages on Cisco Nexus NX-OS

By | 15/08/2025

Last Updated on 15/08/2025 by administrator

Installing Third-Party Packages on Cisco Nexus NX-OS

Installing Third-Party Packages on Cisco Nexus NX-OS: Best Practices

Motivation:

When working with Cisco Nexus switches running NX-OS, it is sometimes necessary to Installing Third-Party Packages on Cisco Nexus NX-OS to extend the switch’s functionality, such as monitoring agents or lightweight web servers. This guide explains how to do it safely, following best practices.

1. Use Cisco-Verified Repositories:

For installing third-party Linux packages (RPMs), Cisco provides an official repository for Open NX-OS packages:

Packages here are verified and tested for NX-OS. Always prefer Cisco’s repository over generic sources to reduce risk of compatibility issues.

Optional: Some guides reference EPEL (Extra Packages for Enterprise Linux), but not all packages are compatible with NX-OS (Wind River Linux). Only use packages explicitly verified for NX-OS.

As a example lighttpd packages will be downloaded.

2. Transfer RPM Packages to the Nexus Switch:

Example of copy a rpm files from a SSH server (running under IP address 192.168.1.10) to the NX-1 device:

NX-1# scp yourlogin@192.168.1.10:/path/on/server/*.rpm bootflash:

Or it can be done from Linux server, where 10.1.1.100 is IP address of NX-1:

student@student-vm:~/labs/lighttpd$ scp *.rpm cisco@10.1.1.100:bootflash:/

Confirm that the packages were transferred on NX-1:

NX-1# dir bootflash:
       4096    Oct 15 09:08:27 2024  .rpmstore/
       4096    Oct 15 09:08:46 2024  .swtam/
          0    Oct 15 09:08:40 2024  bootflash_sync_list
       4096    Oct 15 09:08:48 2024  eem_snapshots/
       4096    Oct 15 09:08:45 2024  evt_log_snapshot/
     111200    Oct 15 12:52:41 2024  lighttpd-1.4.36-r0.0.lib32_x86.rpm
       7029    Oct 15 12:52:41 2024  lighttpd-module-access-1.4.36-r0.0.lib32_x86.rpm
      11925    Oct 15 12:52:41 2024  lighttpd-module-accesslog-1.4.36-r0.0.lib32_x86.rpm
      13586    Oct 15 12:52:41 2024  lighttpd-module-dirlisting-1.4.36-r0.0.lib32_x86.rpm
       7506    Oct 15 12:52:41 2024  lighttpd-module-indexfile-1.4.36-r0.0.lib32_x86.rpm
       9820    Oct 15 12:52:41 2024  lighttpd-module-staticfile-1.4.36-r0.0.lib32_x86.rpm
 1956867584    Aug 04 22:58:29 2021  nxos.9.3.8.bin
          0    Oct 15 12:49:58 2024  platform-sdk.cmd
       4096    Oct 15 09:09:21 2024  scripts/
       4096    Oct 15 09:09:05 2024  virtual-instance/

Usage for bootflash://sup-local
 1974898688 bytes used
 2278920192 bytes free
 4253818880 bytes total
NX-1#

3. Enable Bash Shell (if necessary):

Enter the configuration mode and enable access to the Linux Bash shell of the Cisco Nexus switch:

NX-1# configure terminal
NX-1(config)# feature bash-shell

Exit the configuration mode and install the lighttpd package from the bootflash:

NX-1(config)# exit
NX-1# install add bootflash:lighttpd-1.4.36-r0.0.lib32_x86.rpm
[####################] 100%
Install operation 1 completed successfully at Wed Oct 16 08:01:52 2024
NX-1#

Display the inactive packages. The inactive packages were installed on the switch but are not currently active or in use:

NX-1# show install inactive
Boot Image:
        NXOS Image: bootflash:///nxos.9.3.8.bin

Inactive Packages:
        lighttpd-1.4.36-r0.0.lib32_x86

Inactive Base Packages:
        innusd_n9000-1.0.0.0-9.3.8.lib32_n9000
        nxusd_n9000-1.0.0.0-9.3.8.lib32_n9000
NX-1#

4. Installing Third-Party Packages on Cisco Nexus NX-OS:

Installing Third-Party Packages on Cisco Nexus NX-OS for the all lighttpd packages modules:

NX-1# install add bootflash:lighttpd-module-access-1.4.36-r0.0.lib32_x86.rpm
[####################] 100%
Install operation 2 completed successfully at Wed Oct 16 10:29:51 2024

NX-1# install add bootflash:lighttpd-module-accesslog-1.4.36-r0.0.lib32_x86.rpm
[####################] 100%
Install operation 3 completed successfully at Wed Oct 16 10:30:04 2024

NX-1# install add bootflash:lighttpd-module-dirlisting-1.4.36-r0.0.lib32_x86.rpm
[####################] 100%
Install operation 4 completed successfully at Wed Oct 16 10:30:17 2024

NX-1# install add bootflash:lighttpd-module-indexfile-1.4.36-r0.0.lib32_x86.rpm
[####################] 100%install a
Install operation 5 completed successfully at Wed Oct 16 10:30:30 2024

NX-1# install add bootflash:lighttpd-module-staticfile-1.4.36-r0.0.lib32_x86.rpm
[####################] 100%
Install operation 6 completed successfully at Wed Oct 16 10:30:37 2024

Activate the lighttpd package:

NX-1# install activate lighttpd-1.4.36-r0.0.lib32_x86
[####################] 100%
Install operation 7 completed successfully at Wed Oct 16 10:33:01 2024

5. Verify Installation:

Connect to Bash Shell as root user. This command gives you complete root access to the system, putting you into the root user’s environment:

NX-1# run bash sudo su -
root@NX-1#

In the Bash Shell, list all packages and pipe the output into grep to filter for lines containing „lighttpd„. The output displays the installed lighttpd package along with its associated modules. The third column indicates that packages were installed from the third-party repository:

root@NX-1#yum list | grep lighttpd
lighttpd.lib32_x86                     1.4.36-r0.0                   @thirdparty
lighttpd-module-access.lib32_x86       1.4.36-r0.0                   @thirdparty
lighttpd-module-accesslog.lib32_x86    1.4.36-r0.0                   @thirdparty
lighttpd-module-dirlisting.lib32_x86   1.4.36-r0.0                   @thirdparty
lighttpd-module-indexfile.lib32_x86    1.4.36-r0.0                   @thirdparty
lighttpd-module-staticfile.lib32_x86   1.4.36-r0.0                   @thirdparty

6. Configure the Application:

In the terminal, open the lighttpd configuration file in a text editor:

root@NX-1#vi /etc/lighttpd.conf

and put new line down. This configures the lighttpd server to listen for incoming connections on all available network interfaces, making it accessible from external systems.

server.bind = "0.0.0.0"

Press the Esc key to exit the editing mode and enter the :wq command to save the changes:

:wq

Start a Bash shell, and ensure that all network operations within this shell run only inside the „management“ namespace using command below:

root@NX-1#ip netns exec management bash

Restart the lighttpd service, thereby applying the changed configuration and ignore the two warnings that you receive:

root@NX-1#service lighttpd restart
Restarting Lighttpd Web Server: stopped /usr/sbin/lighttpd (pid 23837)
/usr/sbin/lighttpd: /lib/libcrypto.so.1.0.0: no version information available (required by /usr/sbin/lighttpd)
/usr/sbin/lighttpd: /usr/lib/libssl.so.1.0.0: no version information available (required by /usr/sbin/lighttpd)
lighttpd.
root@NX-1#

Open a new tab in your browser and navigate to 10.1.1.100. If you can see „It works!“ all was done properly and HTTP server is running:

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérský softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030 Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *