Using the auto-provision feature to automatically upgrade new switches added to your ACI Fabric

After a brief break from the APIC, the auto-provisioning feature is available (again) inside of the APIC GUI starting with APIC version 2.3 release and later. However, if you need it (or want it) and you are running at least APIC 2.2, you can configure the feature via API (i.e., XML or JSON).

Why would you want the auto-provisioning feature? When configured properly, the auto-provisioning feature will automatically upgrade any new switch which is attached to the fabric to the current desired target of code. So, if you have RMA’d a switch and attach it to the fabric, it will upgrade (or downgrade) to the appropriate code, with no further action required on your part. Same story if you are expanding your ACI fabric with new Spines or Leafs.

NOTE – This feature is not intended to take the place of a normal ACI Fabric-wide upgrade process. If you need guidance on performing an ACI Fabric upgrade, check out the Upgrading your ACI Fabric article.

Configuration (for APIC 2.3 up to 4.0)

  1. Set the “Default Firmware Version” under the Firmware Node Version Tab to your desired Code (i.e., 3.0.2h). Any nodes joining the fabric will be upgraded to that version of code.

NOTE – The version specified in the firmware group policy takes precedence over the version specified in your Default Firmware Version policy. If the switch is not the running desired code, the firmware upgrade is performed at the time of bootscript processing.

Default Firmware Version set to specific code

Admin > Firmware > Firmware Node Firmware

    1. APIC – ENFORCE BOOTSCRIPT VERSION VALIDATION – CHECKED
    2. DEFAULT FIRMWARE VERSION – TARGET VERSION OF CODE (i.e., 3.0.2h) (do not select “Any”)
    3. Decommission and Recommission the switch
Screen Shot 2017-10-20 at 11.40.26 AM.png
Fabric Node Firmware – Setting the Default Firmware Version

 

Configuration (for APIC 4.0 and later)

As you may have noticed, the process of upgrading the fabric changed beginning in 4.0. If you want to know more, take a look at this article – Upgrading your ACI Fabric, the 4.0 Way.

  1. In order to configure auto-provisioning in 4.0, you’ll need to Set the “Default Firmware Version” under the Admin > Firmware > Infrastructure > Nodes Tab to your desired Code (i.e.,  14.0(3d)). Any nodes joining the fabric will be upgraded to that version of code.

Default Firmware Version set to specific code

Admin > Firmware > Infrastructure > Nodes

    1. APIC – ENFORCE BOOTSCRIPT VERSION VALIDATION – CHECKED
    2. DEFAULT FIRMWARE VERSION – TARGET VERSION OF CODE (i.e., 14.0(3d)) (do not select “Any”)
    3. Decommission and Recommission the switch
Screen Shot 2019-02-14 at 9.47.46 AM.png
Default Firmware Version – APIC 4.0 and later

Verification

Once you commissioned your switch, I’d recommend hopping into the console and watching the process (if available). Once you’re in, use the following command to check the status “cat /mit/sys/summary” – What you’re looking for is the “state”, at the end of the output. This should show up as downloading-boot-script. The downloading boot-script state just means that we are downloading the bootscript that points to the appropriate version of code for the fabric.

Leaf203# cat /mit/sys/summary
[ 1047.965687] epld_upgrade (25344) Ran 5258 msecs in last 5304 msecs
 
# System
address                  : 0.0.0.0
bootstrapState           : none
childAction              :
configIssues             :
controlPlaneMTU          : 9000
currentTime              : 2019-11-19T22:15:55.034+00:00
dn                       : sys
enforceSubnetCheck       : no
etepAddr                 : 0.0.0.0
fabricDomain             : ACI Fabric1
fabricId                 : 1
fabricMAC                : 00:22:BD:F8:19:FF
id                       : 203
inbMgmtAddr              : 0.0.0.0
inbMgmtAddr6             : ::
lcOwn                    : local
modTs                    : 2017-10-19T21:07:10.342+00:00
mode                     : unspecified
monPolDn                 : uni/fabric/monfab-default
name                     : Leaf203
nameAlias                :
oobMgmtAddr              : 0.0.0.0
oobMgmtAddr6             : ::
podId                    : 1
remoteNetworkId          : 0
remoteNode               : no
rn                       : sys
role                     : leaf
serial                   : FDO21242YD1
state                    : downloading-boot-script
status                   :
systemUpTime             : 00:00:17:29.000
unicastXrEpLearnDisable  : no

APIC 2.2 XML code to enable the auto-provisioning feature

In APIC 2.2, the configuration knobs do not show up in the GUI, however they are present under the hood and can be turned on if you know how.

To configure
POST URL — https://{{APIC_IP}}/api/node/mo/uni/fabric/fwrepop.xml

BODY
<firmwareRepoP enforceBootscriptVersionValidation=”yes” defaultSwitchVersion=”any” status=”modified”/>

To verify it has been configured
GET URL – https://{{hostName}}/api/node/mo/uni/fabric/fwrepop.xml

– or –

Login to visore (https://{{APIC_IP}}/visore.html (credentials are your apic username/password)

In the DN field, search for “firmwareRepoP”

You should see the following:

Screen Shot 2017-09-21 at 10.15.39 AM.png

 


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.