Issue
I was cleaning up a customer's NSX-T configuration to bring some changes, when I saw a lot of logical-ports still connected, more than hundred even if VM was no more present on vCenter.
Solution
I immediately thought of creating a script with rest APIs calls to remove the logical ports from NSX-T Manager.
It is possible to find all the NSX-T API calls here.
For rest APIs calls within the bash script I will be using cURL with the suggestions provided here.
First, let's see the rest APIs to use:
-
to retrieve the IDs of the Logical Ports
-
to delete the connection
To get the list of Logical-Ports:
GET /api/v1/logical-ports
Below how it looks the command line ...
# lorenzo@ubuntu:~$ curl -ksn -X GET https://{NSX-T MANAGER IP}/api/v1/logical-ports... combining to the previous line the jq command and sed, we can extract only the ID field of our interst.
# lorenzo@ubuntu:~$ curl -ksn -X GET https://{NSX-T MANAGER IP}/api/v1/logical-ports | jq '.results[] | .id' | sed 's/"//g'Outcome in the image below.
To get the deletion of the Logical-Port:
DELETE /api/v1/logical-ports/<LogicalPort-ID>?detach=true
We now have all the elements to build the bash script, which looks like the one below...
WARNING: It provided witout warranty. Use it at your own risk and only if you are aware of what you are doing
#!/bin/bash curl -ksn -X GET https://{NSX-T MANAGER IP}/api/v1/logical-ports | jq '.results[] | .id' | sed 's/"//g' | while read -r LP_ID do curl -ksn -X DELETE https://{NSX-T MANAGER IP}/api/v1/logical-ports/${LP_ID}?detach=true echo " -> "${LP_ID}" removed " done... launch the script as below ...
lorenzo@ubuntu:~$ bash remove_all_logical_port.sh... the result is the following. All Logial-Ports have been cancelled.
That's it.
Nessun commento:
Posta un commento