-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGet-EC2data.ps1
More file actions
35 lines (26 loc) · 1.21 KB
/
Get-EC2data.ps1
File metadata and controls
35 lines (26 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$ec2Names = Import-Csv -Path "C:\Temp\instances.csv"
$envs = @("production","dev","staging","test")
$obj = New-Object -TypeName psobject
foreach ($_ in $ec2Names) {
foreach ($env in $envs) {
$ec2Name = $_.instance
$ec2Object = (aws ec2 describe-instances --filters Name=tag-value,Values=$ec2Name Name=tag-key,Values=Name Name=tag-value,Values=$env Name=tag-key,Values=Env | ConvertFrom-Json).Reservations.Instances
if ($null -ne $ec2Object) {
$instanceId = $ec2Object.InstanceId
$ipAddress = $ec2Object.PrivateIpAddress
$availabilityZone = $ec2Object.Placement.AvailabilityZone
$obj = New-Object PSObject -Property @{
Name = $ec2Name
Instance_ID = $instanceId
IP_Address = $ipAddress
Environment = $env
Availability_Zone = $availabilityZone
}
$obj | Select-Object Name, Instance_ID, IP_Address, Environment, Availability_Zone
$obj | Select-Object Name, Instance_ID, IP_Address, Environment, Availability_Zone | export-CSV 'C:\Temp\Output.csv' -Append
}
else {
Write-Output "$ec2Name not found in $env..."
}
}
}