• TerminAttr – Manual Upgrade & Downgrade

 
 
Print Friendly, PDF & Email

Introduction

TerminAttr is the EOS state streaming telemetry agent running as a single binary that can stream to both CloudVision and 3rd party applications using gNMI. It has been bundled with every EOS release from 4.17.0F and above and it’s also available as a SWIX extension that can be used to upgrade TerminAttr to the latest version. This article lists the steps to manually upgrade and downgrade TerminAttr from CLI.

How to check which version of TerminAttr is running on EOS

As per the release notes, the minimum supported TerminAttr version on each EOS release, is the one that comes pre-bundled with it, which can be checked with the show version detail command. 

#show version detail | grep TerminAttr-core

TerminAttr-core      v1.13.3         1

Note: TerminAttr will only show up in the show extensions output if it was installed as a SWIX extension.

When to upgrade/downgrade TerminAttr Manually 

Following are some of the reasons to upgrade/downgrade the TerminAttr version on the switch :

  • When you cannot use the Image bundle on CVP for some reason (or) if you need to upgrade TA on a single device or only for a few devices, a manual upgrade is an easier option. 
  • When you have a TA version that is too high for the EOS version on the switch on an older CVP version (For example. TA – 1.17.0 for EOS-4.17.x, on CVP 2019.1.0), you will need to downgrade the TA to a compatible version for the EOS on the switch. 

Note: It is always recommended to check the CVP Release Notes for the latest recommended stable version and compatibility between EOS releases. 

Steps to Upgrade

  • Shutdown the TerminAttr
(config)# daemon TerminAttr
(config-daemon-TerminAttr)# shutdown
  • Download the extension from the Arista software downloads page and copy the new version of TerminAttr from your PC to the switch’s flash (/mnt/flash), using SCP / WinSCP. 
  • Copy the .swix file to the extension partition (note that you need to do this from the CLI as written below; doing this from bash wouldn’t create metadata in Sysdb and installation would fail):
(config)# copy flash:TerminAttr-1.7.4-1.swix extension:
  • Install the extension
(config)# extension TerminAttr-1.7.4-1.swix
  • Make it persistent across reboots.
(config)# copy installed-extensions boot-extensions
  • Turn on the TerminAttr
(config)# daemon TerminAttr
(config-daemon-TerminAttr)# no shutdown
  • Check if TA was installed successfully & verify if it is actively streaming to CVP
(config)# show version detail | grep TerminAttr-core

TerminAttr-core      v1.7.4         1
(config)# show extensions 
 Name                         Version/Release      Status      Extension
---------------------------- -------------------- ----------- ---------

TerminAttr-1.7.4-1.swix      v1.7.4/1             A, I        18


A: available | NA: not available | I: installed | NI: not installed | F: forced

Note: It might take a minute for it to become Active in the CVP GUI.

Steps to Downgrade

  • Download and copy the TA extension (.swix) file to the switch’s flash (/mnt/flash), using SCP/ WinSCP
  • Copy the .swix file to extension partition
(config)# copy flash:TerminAttr-1.7.4-1.swix extension:

Current Status:
(config)#show extensions
Name                          Version/Release      Status      Extension
----------------------------- -------------------- ----------- ---------

TerminAttr-1.17.0-1.swix      v1.17.0/1            A, I        1

TerminAttr-1.7.4-1.swix       v1.7.4/1             A, NI       23

A: available | NA: not available | I: installed | NI: not installed | F: forced
  • Force uninstall the existing (higher version) extension
(config)#no extension TerminAttr-1.17.0-1.swix force
 
Current Status:

(config)#show extensions

Name                          Version/Release      Status      Extension
----------------------------- -------------------- ----------- ---------

TerminAttr-1.17.0-1.swix      v1.17.0/1            A, NI       1

TerminAttr-1.7.4-1.swix       v1.7.4/1             A, NI       23


A: available | NA: not available | I: installed | NI: not installed | F: forced
  •  Install the extension
(config)# extension TerminAttr-1.7.4-1.swix

Current Status:

(config)#show extensions
Name                          Version/Release      Status      Extension
----------------------------- -------------------- ----------- ---------

TerminAttr-1.17.0-1.swix      v1.17.0/1            A, NI       1

TerminAttr-1.7.4-1.swix       v1.7.4/1             A, I        23
 
A: available | NA: not available | I: installed | NI: not installed | F: forced
  •  Make it persistent across reboots
(config)# copy installed-extensions boot-extensions
  •  Check if TA was installed successfully & verify if it is actively streaming to CVP
(config)# show version detail | grep TerminAttr-core

TerminAttr-core      v1.7.4         1
(config)# show extensions 
  Name                         Version/Release      Status      Extension
---------------------------- -------------------- ----------- ---------

TerminAttr-1.7.4-1.swix      v1.7.4/1             A, I        18
 

A: available | NA: not available | I: installed | NI: not installed | F: forced

Note: It might take a minute for it to reflect the active TA in the CVP GUI.

  • Remove any unwanted extensions from the switch that are in “A, NI” state
(config)# delete extension:TerminAttr-1.17.0-1.swix

Possible Errors during downgrade

  • While downgrading TA, we need to uninstall the existing version first, to avoid the following error which is a result of installing the lower version directly
(config)#sh extensions

Name                          Version/Release      Status      Extension
----------------------------- -------------------- ----------- ---------

TerminAttr-1.17.0-1.swix      v1.17.0/1            A, I        1

TerminAttr-1.7.4-1.swix       v1.7.4/1             A, NI       23
 

A: available | NA: not available | I: installed | NI: not installed | F: forced
(config)#extension TerminAttr-1.7.4-1.swix

% Error installing TerminAttr-1.7.4-1.swix: RPM install error: Transaction failed: package TerminAttr-core-0:v1.17.0-1.i386 (which is newer than TerminAttr-core-0:v1.7.4-1.i386) is already installed.
  • While downgrading TA, the following error will be observed when trying to uninstall the existing extension. Use the force keyword to avoid this error
(config)#no extension TerminAttr-1.17.0-1.swix

% Error uninstalling extension: RPM uninstall error: Transaction check failed: TerminAttr-core is needed by (installed) TerminAttr-1.0.0-9983808.41810M.i686
  •  While downgrading TA, the following error backtrace will be observed, when the existing extension is deleted prior to uninstalling it. The reason for the error while trying to perform “no extension” is because the file cannot be found under the extensions partition
(config)#sh extensions
Name                          Version/Release      Status      Extension
----------------------------- -------------------- ----------- ---------

TerminAttr-1.17.0-1.swix      v1.17.0/1            A, I        1

TerminAttr-1.7.4-1.swix       v1.7.4/1             A, NI       23

A: available | NA: not available | I: installed | NI: not installed | F: forced
(config)#delete extension:TerminAttr-1.17.0-1.swix
(config)#show extensions
Name                          Version/Release      Status      Extension

----------------------------- -------------------- ----------- ---------

TerminAttr-1.17.0-1.swix      v1.17.0/1            NA, I       1

TerminAttr-1.7.4-1.swix       v1.7.4/1             A, NI       23

A: available | NA: not available | I: installed | NI: not installed | F: forced

 
(config)#no extension TerminAttr-1.17.0-1.swix

% Error uninstalling extension: RPM uninstall error: Transaction check failed: TerminAttr-core is needed by (installed) TerminAttr-1.0.0-9983808.41810M.i686

(config)#no extension TerminAttr-1.17.0-1.swix force


% =============== Exception raised in '/usr/bin/python /usr/bin/UninstallExtension --sysname ar --force TerminAttr-1.17.0-1.swix ' (PID 9295; PPID 9292) ===============

Local variables by frame (innermost frame last):

 

  File "/usr/bin/UninstallExtension", line 52, in <module>

                    args = ['TerminAttr-1.17.0-1.swix']

           extensionName = 'TerminAttr-1.17.0-1.swix'

                filename = 'TerminAttr-1.17.0-1.swix'

                    info = <EntityProxy /ar/Sysdb/cell/1/sys/extension/status.info/%27TerminAttr-1%2E17%2E0-1%2Eswix%2FformatSwix%2F1%27>

                 options = {'force': True, 'sysname': 'ar', 'quiet': False}

                  parser = <optparse.OptionParser instance at 0x949274c>

                      pc = <PyClient.PyClient object at 0x949d3ec>

                    root = <EntityProxy /ar/Sysdb>

                  status = <EntityProxy /ar/Sysdb/cell/1/sys/extension/status>

                   usage = '\nUninstallExtension [-s <sysname>] [-q] <extension-name>\n\nUninstalls the extension specified by <extension-name>.  The extension must\nbe installed.\n'

 

<---------------------------------------------------Output Trimmed ------------------------------------------------------>

 

Traceback (most recent call last):

  File "/usr/lib/python2.7/site-packages/PyServer.py", line 149, in _eval

  File "<socket>", line 1, in <module>

  File "/usr/lib/python2.7/site-packages/Tac.py", line 1293, in entity

NameError: Failed to look up entity named '/ar/Sysdb/cell/1/sys/extension/status.info/%27TerminAttr-1%2E17%2E0-1%2Eswix%2FformatSwix%2F1%27': '/ar/Sysdb/cell/1/sys/extension/status.info/%27TerminAttr-1%2E17%2E0-1%2Eswix%2FformatSwix%2F1%27'

 

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: