Update AWS network interface's Tag with its DNS entry (PowerShell 3.0)
Want to keep a tag that contains the DNS entry of an IP address of your ENIs?This PowerShell function calls nslookup (Windows native) and adds a tag to ENI with the returned value.
You can also find me here.
################################################ # # Get all the reserved ENI in the VPC and # create a new tag based on the # responding nslookup on the Private IP # # # (\_/) # (>.<) # (")_(") # ################################################# # Get ENIs with ID, Status, PrivateIP, and DNS Tag $ip_raw = aws ec2 describe-network-interfaces --filter "Name=vpc-id,Values=vpc-xxxxxxx" --query "NetworkInterfaces[*].{ID:NetworkInterfaceId,Status:Status,IP:PrivateIpAddress,DNS:TagSet[?Key=='DNS'].Value}" # Convert this to PS Object $ip = $ip_raw | out-string | convertfrom-json foreach($item in $ip){ # Proceed only if DNS Tag does NOT exist if($item.DNS.length -eq 0){ $error.clear() $dns = nslookup $item.ip if($error.count -eq 0){ $name_line = $dns | ?{$_ -like 'Name*'}[0] $dns_name = ($name_line.split(":")[1].trim() }else{ $dns_name = "None" } aws ec2 create-tags --resources $item.ID --tags "Key=DNS,Value=$dns_name" } }
No comments:
Post a Comment