<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Can RADKit be used for bulk IOS upgrade on switches? in RADKit Discussions</title>
    <link>https://community.cisco.com/t5/radkit-discussions/can-radkit-be-used-for-bulk-ios-upgrade-on-switches/m-p/5151802#M150</link>
    <description>&lt;P&gt;Hi Nurul,&lt;/P&gt;
&lt;P&gt;Absolutely possible, you can start scripting that and we will support you if you face any issues with the APIs.&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Rana&lt;/P&gt;</description>
    <pubDate>Fri, 26 Jul 2024 11:32:18 GMT</pubDate>
    <dc:creator>Rana Khalil</dc:creator>
    <dc:date>2024-07-26T11:32:18Z</dc:date>
    <item>
      <title>Can RADKit be used for bulk IOS upgrade on switches?</title>
      <link>https://community.cisco.com/t5/radkit-discussions/can-radkit-be-used-for-bulk-ios-upgrade-on-switches/m-p/5150652#M144</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;I have around 100 Cisco 2960X switches that needed to be upgraded. They are currently on&amp;nbsp;15.2(7)E4 which is not compatible with DNAC SWIM. As an orchestrator would RADKit be able to be used for bulk upgrading large number of switches (100)? The target version is&amp;nbsp;15.2(7)E10.&lt;/P&gt;&lt;P&gt;Any info on this would be much appreciated. Thanks.&lt;/P&gt;&lt;P&gt;Nurul&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2024 04:40:23 GMT</pubDate>
      <guid>https://community.cisco.com/t5/radkit-discussions/can-radkit-be-used-for-bulk-ios-upgrade-on-switches/m-p/5150652#M144</guid>
      <dc:creator>dracmus20</dc:creator>
      <dc:date>2024-07-25T04:40:23Z</dc:date>
    </item>
    <item>
      <title>Re: Can RADKit be used for bulk IOS upgrade on switches?</title>
      <link>https://community.cisco.com/t5/radkit-discussions/can-radkit-be-used-for-bulk-ios-upgrade-on-switches/m-p/5150708#M146</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;Thanks for reaching out.&lt;/P&gt;
&lt;P&gt;To be able to answer this, I would like to understand from you how the upgrade gets triggered and I would like to understand more about the process.&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Rana&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2024 06:23:20 GMT</pubDate>
      <guid>https://community.cisco.com/t5/radkit-discussions/can-radkit-be-used-for-bulk-ios-upgrade-on-switches/m-p/5150708#M146</guid>
      <dc:creator>Rana Khalil</dc:creator>
      <dc:date>2024-07-25T06:23:20Z</dc:date>
    </item>
    <item>
      <title>Re: Can RADKit be used for bulk IOS upgrade on switches?</title>
      <link>https://community.cisco.com/t5/radkit-discussions/can-radkit-be-used-for-bulk-ios-upgrade-on-switches/m-p/5151408#M148</link>
      <description>&lt;P&gt;Hi Rana,&lt;/P&gt;&lt;P&gt;Thanks for responding.&lt;/P&gt;&lt;P&gt;Please see below for the expected steps:&lt;/P&gt;&lt;P&gt;1. **Check if the Device Needs an Upgrade**&lt;BR /&gt;- Use RADKit to query the current IOS version of the switch.&lt;BR /&gt;- Compare the current version with the target upgrade version.&lt;BR /&gt;- If the device is already on the latest version, log the status and skip further steps for this device.&lt;/P&gt;&lt;P&gt;2. **Verify if the New Version is Already Uploaded**&lt;BR /&gt;- Use RADKit to list the files in the switch’s flash memory.&lt;BR /&gt;- Check for the presence of the target IOS version file.&lt;BR /&gt;- If the file is already present, log the status and proceed to the validation steps.&lt;/P&gt;&lt;P&gt;3. **Ensure Sufficient Space for the New Version**&lt;BR /&gt;- Use RADKit commands to check the available flash memory on the switch.&lt;BR /&gt;- Calculate the required space for the new IOS image.&lt;BR /&gt;- If there is insufficient space, log the status and optionally delete unnecessary files to free up space.&lt;/P&gt;&lt;P&gt;4. **Copy the New IOS Image to Flash Memory**&lt;BR /&gt;- Use RADKit’s file transfer capabilities to copy the new IOS image from a central repository to the switch’s flash memory.&lt;BR /&gt;- Ensure that the transfer is complete and the file is not corrupted.&lt;/P&gt;&lt;P&gt;5. **Verify the Integrity of the Uploaded File (MD5 Check)**&lt;BR /&gt;- Use RADKit to calculate the MD5 checksum of the uploaded IOS image.&lt;BR /&gt;- Compare the calculated checksum with the expected MD5 value provided by Cisco.&lt;BR /&gt;- If the checksums match, proceed; if not, re-upload the file.&lt;/P&gt;&lt;P&gt;6. **Set the Boot Parameter**&lt;BR /&gt;- Use RADKit to set the boot parameters on the switch.&lt;BR /&gt;- Configure the switch to use the new IOS image for the next reboot.&lt;BR /&gt;- Ensure the boot parameters are correctly set to avoid boot failures.&lt;/P&gt;&lt;P&gt;7. **Check the Boot Path**&lt;BR /&gt;- Use RADKit to verify the boot path configuration.&lt;BR /&gt;- Ensure that the new IOS image is correctly set as the primary boot image.&lt;BR /&gt;- Log any discrepancies and correct them if necessary.&lt;/P&gt;&lt;P&gt;8. **Reload the Switch**&lt;BR /&gt;- Initiate a reload of the switch using RADKit.&lt;BR /&gt;- Monitor the switch’s status to ensure it goes through the reboot process successfully.&lt;/P&gt;&lt;P&gt;9. **Wait for the Switches to Come Back Up**&lt;BR /&gt;- Use RADKit to periodically check the switch’s status during the reboot process.&lt;BR /&gt;- Confirm that the switch has fully rebooted and is operational.&lt;/P&gt;&lt;P&gt;10. **Validate the IOS Version**&lt;BR /&gt;- After the switch is back up, use RADKit to query the IOS version again.&lt;BR /&gt;- Verify that the switch is running the new IOS version.&lt;BR /&gt;- Log the successful upgrade and any issues encountered during the process.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Nurul&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jul 2024 00:39:06 GMT</pubDate>
      <guid>https://community.cisco.com/t5/radkit-discussions/can-radkit-be-used-for-bulk-ios-upgrade-on-switches/m-p/5151408#M148</guid>
      <dc:creator>dracmus20</dc:creator>
      <dc:date>2024-07-26T00:39:06Z</dc:date>
    </item>
    <item>
      <title>Re: Can RADKit be used for bulk IOS upgrade on switches?</title>
      <link>https://community.cisco.com/t5/radkit-discussions/can-radkit-be-used-for-bulk-ios-upgrade-on-switches/m-p/5151802#M150</link>
      <description>&lt;P&gt;Hi Nurul,&lt;/P&gt;
&lt;P&gt;Absolutely possible, you can start scripting that and we will support you if you face any issues with the APIs.&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Rana&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jul 2024 11:32:18 GMT</pubDate>
      <guid>https://community.cisco.com/t5/radkit-discussions/can-radkit-be-used-for-bulk-ios-upgrade-on-switches/m-p/5151802#M150</guid>
      <dc:creator>Rana Khalil</dc:creator>
      <dc:date>2024-07-26T11:32:18Z</dc:date>
    </item>
    <item>
      <title>Re: Can RADKit be used for bulk IOS upgrade on switches?</title>
      <link>https://community.cisco.com/t5/radkit-discussions/can-radkit-be-used-for-bulk-ios-upgrade-on-switches/m-p/5151890#M151</link>
      <description>&lt;P&gt;&lt;a href="https://community.cisco.com/t5/user/viewprofilepage/user-id/773427"&gt;@dracmus20&lt;/a&gt;, steps that are worth mentioning though in your algorithm are:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;8. **Reload the Switch**&lt;/STRONG&gt;&lt;BR /&gt;- Initiate a reload of the switch using RADKit.&lt;BR /&gt;- Monitor the switch’s status to ensure it goes through the reboot process successfully.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;9. **Wait for the Switches to Come Back Up**&lt;/STRONG&gt;&lt;BR /&gt;- Use RADKit to periodically check the switch’s status during the reboot process.&lt;BR /&gt;- Confirm that the switch has fully rebooted and is operational.&lt;/P&gt;
&lt;P&gt;RADKit has no explicit API that checks that but we still have a way to do it which is via DeviceFlow&lt;/P&gt;
&lt;P&gt;&lt;A href="https://radkit.cisco.com/docs/pages/client_api_sync.html#radkit_client.sync.DeviceFlow" target="_blank"&gt;https://radkit.cisco.com/docs/pages/client_api_sync.html#radkit_client.sync.DeviceFlow&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;You might wanna check this quick algorithm:&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;from time import sleep

sleep (x) #number of seconds that the device will typically take to come back online

while(time()-now &amp;lt; x):

flow.exec_wait(" show version") #execute any simple command to check if the device is responding
if len (flow. failed_devices) = 0:  #Keep trying until there are no failed devices

break

flow. failed_devices () #focus on the failed devices until nothing is left&lt;/LI-CODE&gt;</description>
      <pubDate>Fri, 26 Jul 2024 14:10:11 GMT</pubDate>
      <guid>https://community.cisco.com/t5/radkit-discussions/can-radkit-be-used-for-bulk-ios-upgrade-on-switches/m-p/5151890#M151</guid>
      <dc:creator>Rana Khalil</dc:creator>
      <dc:date>2024-07-26T14:10:11Z</dc:date>
    </item>
    <item>
      <title>Re: Can RADKit be used for bulk IOS upgrade on switches?</title>
      <link>https://community.cisco.com/t5/radkit-discussions/can-radkit-be-used-for-bulk-ios-upgrade-on-switches/m-p/5152165#M154</link>
      <description>&lt;P&gt;Hello Nuru,&lt;/P&gt;
&lt;P&gt;Could you tell me if you are still interested on this topic and still need assistance ?&lt;BR /&gt;What is the timeline that you would need something like this ready ?&lt;BR /&gt;&lt;BR /&gt;Best Regards,&lt;BR /&gt;Luiz Lalanda Silva&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 27 Jul 2024 11:43:21 GMT</pubDate>
      <guid>https://community.cisco.com/t5/radkit-discussions/can-radkit-be-used-for-bulk-ios-upgrade-on-switches/m-p/5152165#M154</guid>
      <dc:creator>luizsil</dc:creator>
      <dc:date>2024-07-27T11:43:21Z</dc:date>
    </item>
  </channel>
</rss>

