Azure ARM模式下获取订阅下VM信息

Azure ARM模式下获取VM信息

马上就要双十一了,对于一些大客户而言,使用的VM机器超过几百台,无论是促销活动还是每个季度的机器梳理,都需要对这些VM进行梳理总结,是否有公网IP,IP动态静态,对于动态IP而言,因为机器重启有可能造成IP改变,有可能对业务造成很大影响。所以快速获取订阅下所有VM信息就很重要。

  1. 如下介绍通过直接运行PowerShell脚本就可以很快获取到全部信息
  2. 脚本如下:

可以通过powershell收集统计VM的公网IP,内网IP,机器型号,位置,操作系统,端口

#

Login-AzureRmAccount -EnvironmentName Azurechinacloud

Select-AzureRmSubscription  -SubscriptionName xxxxxxx(需要添加自己的订阅ID)

$AllNic=[System.Collections.ArrayList]@()

$AllRG=(Get-AzureRmResourceGroup).ResourceGroupName

foreach($RG in $AllRG ){

$Nics=Get-AzureRmNetworkInterface -ResourceGroupName $RG

foreach($nic in $Nics){

[email protected]{}

if( $nic.VirtualMachine )

{

$d.Add("Vmname",$nic.VirtualMachine[0].Id.Split("/")[8])

$vm=Get-AzureRmVM -ResourceGroupName $nic.VirtualMachine[0].Id.Split("/")[4] -Name $nic.VirtualMachine[0].Id.Split("/")[8]

$d.Add("Vmsize",$vm.HardwareProfile.VmSize)

if( $vm.OSProfile.WindowsConfiguration ){

$d.Add("OStype","Windows")

}

else

{

$d.Add("OStype","Linux")

}

$d.Add("NicName",$nic.Name)

$d.Add("PrivateIP",$nic.IpConfigurations[0].PrivateIpAddress)

$d.Add("PrivateIPAllocationMethod",$nic.IpConfigurations[0].PrivateIpAllocationMethod)

#获取公网IP配置

if( $nic.IpConfigurations[0].PublicIpAddress )

{

$pubip=Get-AzureRmPublicIpAddress -Name $nic.IpConfigurations[0].PublicIpAddress.id.Split("/")[8] -ResourceGroupName $nic.IpConfigurations[0].PublicIpAddress.id.Split("/")[4]

$d.Add("PublicIP",$pubip.IpAddress)

$d.Add("PublicIpAllocationMethod",$pubip.PublicIpAllocationMethod)

}

else

{

$d.Add("PublicIP","Null")

$d.Add("PublicIpAllocationMethod","Null")

}

$d.Add("Location",$nic.Location )

$AllNic.Add($d)

}

}

}

$AllNic | select @{Name="Vmname";Expression={$_["Vmname"]}},@{Name="Vmsize";Expression={$_["Vmsize"]}},@{Name="OStype";Expression={$_["OStype"]}},@{Name="NicName";Expression={$_["NicName"]}},@{Name="PrivateIP";Expression={$_["PrivateIP"]}},@{Name="PrivateIpAllocationMethod";Expression={$_["PrivateIpAllocationMethod"]}},@{Name="PublicIP";Expression={$_["PublicIP"]}},@{Name="PublicIpAllocationMethod";Expression={$_["PublicIpAllocationMethod"]}},@{Name="Location";Expression={$_["Location"]}} | Out-GridView

  1. 跑完脚本之后,可以获取到如下信息:

  1. 如上图可以非常清晰的看到所有VM的信息,这对于IT运维会很方便,尤其是大客户几百台机器需要统计,这可以节省大量时间。当然也可以直接导出到csv文件,添加端口等信息,这个供大家参考。

原文地址:https://www.cnblogs.com/wangsongshare/p/9835841.html

时间: 2024-11-01 22:02:19

Azure ARM模式下获取订阅下VM信息的相关文章

如何在跨平台的情况下获取可执行文件的详细信息和属性

很多情况下我们需要获取到系统中一些可执行文件的版本号,以便做一些附加动作!其实可以使用jna获取,但是这将依赖人家,所以还是Java自己来吧!好啦,直接上代码吧 /** * @Description: * * @Title: FileInfoUtil.java * @Package com.joyce.util * @Copyright: Copyright (c) 2014 * * @author Comsys-LZP * @date 2014-5-12 下午03:46:32 * @versi

idea 下获取路径下文件的方法

想读取resouce/temp下的test.txt文件.方式一:File sourceFile = ResourceUtils.getFile("classpath:temp/test.txt"); //这种方法在linux下无法工作 方式二:Resource resource = new ClassPathResource("temp/test.txt");File sourceFile = resource.getFile(); 原文地址:https://www

Linux下获取消息队列的信息

在程序中想要获取消息队列长度可使用消息队列的属性这个数据结构: 需要#include <sys/msg.h> /* one msqid structure for each queue on the system */ struct msqid_ds {     struct ipc_perm msg_perm;     struct msg *msg_first;  /* first message on queue */     struct msg *msg_last;   /* las

Azure ARM (12) ARM模式下,在负载均衡器上设置多个公网IP地址

<Windows Azure Platform 系列文章目录> 最近在帮助一个客户设置WAF (Web Application Firewall),WAF厂商要求在负载均衡器上,设置多个公网IP地址.架构如下图: 我研究了一下,在Azure ARM模式下可以实现,在这里记录一下. 在默认情况下,Azure负载均衡器可以有5个公网IP地址. https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits 如果我们想

使用 Azure ARM 部署Word Press 遇到 Extension节点 扩展的问题

在使用Azure ARM模式部署wordpress,将php网站压缩成zip的形式在DefaultTemplate模板中已扩展的形式实现安装 遇到的问题总结: 1.开始在sites节点中,resource节点下的配置如下: servicePackageLink是我wp的网站压缩包地址 { "apiVersion": "2015-08-01", "name": "web", "type": "con

Azure ARM (10) ARM模式下的虚拟机和Classic Model虚拟机的区别

<Windows Azure Platform 系列文章目录> 本文内容比较多,请大家仔细阅读,谢谢! 请读者注意,在Azure ARM平台,有两种虚拟机模式:经典虚拟机和ARM虚拟机 ASM部署(经典虚拟机): 1.我们通过Azure Classic Portal: http://manage.windowsazure.cn,部署的都是ASM资源(经典虚拟机) 2.如果我们通过Azure New Portal (http://portal.azure.cn) 创建,需要选择部署模式为Clas

Azure ARM (11) ARM模式下,创建虚拟机并配置负载均衡器

<Windows Azure Platform 系列文章目录> 本文内容比较多,请大家仔细阅读,谢谢! 在前几章中,我们做了准备工作: 1.创建ARM Resouce Group,叫LeiResourceGroup 2.创建ARM Storage Account,叫leistorageaccount 3.创建ARM Virtual Network,叫LeiARMVNet 在本章中,笔者将介绍如何在ARM模式下,创建虚拟机VM.主要分为以下几步: 1.创建第一台ARM VM LeiARMWeb0

ARM模式下使用自定义镜像部署VM

目前在中国区的Azure新portal上面, 暂时不支持直接将用户的虚拟机创建为虚拟机镜像,那么在ARM模式下如何捕获虚拟机为用户自定义镜像?而且由于managed disk没有上线,用户创建的虚拟机只能和镜像在一个存储账号下,如何快速的将用户自定义镜像拷贝到其他存储账号,并且快速创建VM?本文就这些常见问题给出一个简单易用的快速解决办法 本文介绍的主要主题如下: Linux/Mac下如何使用Azure CLI捕获ARM下虚拟机镜像 使用ARM模板使用自定义镜像快速创建虚拟机 通过Azure C

Azure ARM (9) 创建ARM模式下的虚拟机网络

<Windows Azure Platform 系列文章目录> 笔者在之前几章内容中,创建了ARM Resource Group,然后在这个ARM Resource Group下创建Azure Storage Account 在本章中,笔者将介绍如何在ARM模式下,创建虚拟机网络Virtual Network. 1.首先,我们先登录Azure New Portal,地址是:https://portal.azure.cn/ 2.选择More Service,然后选中Virtual Network