【发布时间】:2018-03-01 03:07:51
【问题描述】:
如果我知道 EC2 实例 ID 和 EC2 实例名称,
如何使用powershell脚本通过这些信息获取EC2实例公网IP和私网IP地址?并列出这些实例的 IP
【问题讨论】:
标签: powershell amazon-ec2
如果我知道 EC2 实例 ID 和 EC2 实例名称,
如何使用powershell脚本通过这些信息获取EC2实例公网IP和私网IP地址?并列出这些实例的 IP
【问题讨论】:
标签: powershell amazon-ec2
如果您还没有这样做。
如何下载和安装 AWs PowerShell 工具并使用其本机 cmdlet 提取此信息。
适用于 Windows PowerShell 的 AWS 工具
适用于 Windows PowerShell 的 AWS 工具让开发人员和 管理员从 Windows PowerShell 管理他们的 AWS 服务 脚本环境。现在您可以使用 用于管理 Windows 的相同 Windows PowerShell 工具 环境
https://aws.amazon.com/powershell
适用于 Windows PowerShell 的 AWS 工具用户指南
适用于 Windows PowerShell 的 AWS 工具是一组 PowerShell cmdlet 构建在 AWS 开发工具包公开的功能之上 。网。适用于 Windows PowerShell 的 AWS 工具使您能够编写脚本 从 PowerShell 命令行对 AWS 资源进行操作。 尽管 cmdlet 是使用服务客户端和 来自 SDK 的方法,cmdlet 提供了一个惯用的 PowerShell 有指定参数和处理结果的经验。为了 例如,PowerShell 工具的 cmdlet 支持 PowerShell 流水线——也就是说,您可以将 PowerShell 对象通过管道传输到 在 cmdlet 之外。
适用于 Windows PowerShell 的 AWS 工具在启用方式方面非常灵活 您处理凭证,包括对 AWS Identity 的支持和 访问管理 (IAM) 基础设施;您可以将这些工具与 IAM 一起使用 用户凭证、临时安全令牌和 IAM 角色。 AWS Windows PowerShell 工具支持相同的服务集和 SDK 支持的区域。
http://awsdocs.s3.amazonaws.com/powershell/latest/aws-pst-ug.pdf
(Get-EC2Instance -Filter $filter_reservation).Instances
InstanceId : i-5203422c
ImageId : ami-7527031c
State : Amazon.EC2.Model.InstanceState
PrivateDnsName : ip-10-251-50-12.ec2.internal
PublicDnsName : ec2-198-51-100-245.compute-1.amazonaws.com
StateTransitionReason :
KeyName : myPSKeyPair
AmiLaunchIndex : 0
ProductCodes : {}
InstanceType : t1.micro
LaunchTime : 12/11/2013 6:47:22 AM
Placement : Amazon.EC2.Model.Placement
KernelId :
RamdiskId :
Platform : Windows
Monitoring : Amazon.EC2.Model.Monitoring
SubnetId :
VpcId :
PrivateIpAddress : 10.251.50.12
PublicIpAddress : 198.51.100.245
StateReason :
Architecture : x86_64
RootDeviceType : ebs
RootDeviceName : /dev/sda1
BlockDeviceMappings : {/dev/sda1}
VirtualizationType : hvm
InstanceLifecycle :
SpotInstanceRequestId :
License :
ClientToken :
Tags : {}
SecurityGroups : {myPSSecurityGroup}
SourceDestCheck : False
Hypervisor : xen
NetworkInterfaces : {}
IamInstanceProfile :
EbsOptimized : False
另见:
AWS EC2 Windows 实例 – 获取实例详细信息 https://aaronsaikovski.wordpress.com/2015/01/05/aws-ec2-windows-instance-get-instance-details/
如何从 ec2 实例中获取实例 ID?我怎样才能找到 从 ec2 实例中取出 ec2 实例的实例 ID? How to get the instance id from within an ec2 instance?
【讨论】:
要查看单个 EC2 实例的私有 IP,请运行此命令,替换您的特定 InstanceId 和区域:
(Get-Ec2Instance -InstanceId i-9999999999999999 -Region us-east-1).Instances.PrivateIpAddress
对于公众(如果有的话)使用:
(Get-Ec2Instance -InstanceId i-9999999999999999 -Region us-east-1).Instances.PublicIpAddress
如果 EC2 实例有一个公共 IP,并且您想知道它是弹性 IP(静态)还是从 AWS 公共 IP 池分配的,您可以检查 NetworkInterface 关联的 OwnerId。对于弹性 IP,OwnerId 将是您的帐户 ID;对于从 AWS IP 池分配的公共 IP,它将是带有“amazon”的东西,例如“amazon-ebs”或只是“amazon”:
$AccountId = Get-AWSAccount
$ec2 = (Get-Ec2Instance -InstanceId i-99999999999999999 -Region us-east-1).Instances
if ($ec2.PublicIpAddress) {
if ($ec2.NetworkInterfaces.Association.IpOwnerId -like $AccountId) {
Write-Output ("Elastic IP: {0}" -f $ec2.PublicIpAddress)
}
else {
Write-Output ("AWS Public IP Pool {0}" -f $ec2.PublicIpAddress)
}
}
请注意,如果您的 EC2 使用的是 AWS 公共 IP 池,则在实例关闭时不会分配任何 IP 池。它在关机时释放,并在实例重新开机时获得一个新的。详情请参阅Amazon EC2 Instance IP Addressing。
【讨论】: