Automated copy of NSX-T local group to another NSX-T
#!/bin/bash
#source and destination credentials
susername="username"
spassword="password"
dusername="username"
dpassword="password"
sfqdn="nsx-l-01a.corp.local"
dfqdn="nsx-l-01a.corp.local"
#get all groups from source NSX-T and filter with group name contains Sync text
for i in $(curl -k -s -X GET -u "$susername:$spassword" "https://$sfqdn/policy/api/v1/infra/domains/default/groups" | jq -r '.results[] | select(.id | index("Sync")) | .id')
do
echo $i
data=$(curl -k -s -X GET -u "$susername:$spassword" "https://$sfqdn/policy/api/v1/infra/domains/default/groups/$i" | jq '. | {expression,description,display_name}')
data=$(echo $data | jq 'del(.expression[].id) | del(.expression[].path) | del(.expression[].relative_path) | del(.expression[].parent_path) | del(.expression[].remote_path) | del(.expression[].marked_for_delete) | del(.expression[].overridden) | del(.expression[]._protection)')
#Copy the filtered groups to destination NSX-T
echo $data > out.txt
curl -k -s -X PATCH -u "$dusername:$dpassword" "https://$dfqdn/policy/api/v1/infra/domains/default/groups/copy-$i" -H "Accept: application/json" -H "Content-Type: application/json" -d @out.txt
echo "" > out.txt
done
Comentários