通过Python查看Azure VM的状态
Azure的管理平台采用Restful API的方式实现管理。比如获取VM的管理API的各种操作的文档请参考:
https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/get
微软发布的各种SDK,PowerShell或CLI都是基于这些API进行的封装,方便操作。
本文将采用Python来获取Azure VM的状态信息。
1 安装Python的Azure模块
Python的Azure模块的Github链接:
https://github.com/gbowerman/azurerm
如果需要管理China的Azure,安装Stan Peng修改过的模块:
pip install mcazurerm
2 创建Azure的Service Principle
Azure的Service Principle就类似一个用户,可以对Azure的资源进行管理。
采用Azure CLI 2.0的具体命令如下:
az ad sp create-for-rbac --name hwsp –password xxxx
获得输出:
{
"appId": "xxxx",
"displayName": "hwsp",
"name": "http://hwsp",
"password": "xxxx",
"tenant": "xxxx"
}
查看:
az role assignment list --assignee xxxx [
{
"id": "/subscriptions/xxxx/providers/Microsoft.Authorization/roleAssignments/xxxx",
"name": "xxxx",
"properties": {
"principalId": "xxxx",
"principalName": "http://hwsp",
"roleDefinitionId": "/subscriptions/xxxx/providers/Microsoft.Authorization/roleDefinitions/xxxx",
"roleDefinitionName": "Contributor",
"scope": "/subscriptions/xxxx"
},
"type": "Microsoft.Authorization/roleAssignments"
}
]
3 添加创建get_vm_instanceview模块
在原有的mcazurerm中没有查看instanceview的模块,根据前文提到的文档,添加如下:
from mcazurerm import * def get_vm_instanceview(access_token, subscription_id, resource_group, vm_name):
endpoint = ''.join([azure_rm_endpoint,
'/subscriptions/', subscription_id,
'/resourceGroups/', resource_group,
'/providers/Microsoft.Compute/virtualMachines/', vm_name,
'?$expand=instanceView'
'&api-version=', COMP_API])
return do_get(endpoint, access_token)
4 获取Azure VM状态
通过如下代码获取Azure VM状态:
import json
import sys
import mcazurerm
import instanceview try:
with open('azurermconfig.json') as config_file:
config_data = json.load(config_file)
except SystemError:
sys.exit('Error: Expecting azurermconfig.json in current folder') tenant_id = config_data['tenantId']
app_id = config_data['appId']
app_secret = config_data['appSecret']
subscription_id = config_data['subscriptionId'] access_token = mcazurerm.get_access_token(tenant_id, app_id, app_secret) vminstanceview = instanceview.get_vm_instanceview(access_token,sub['subscriptionId'],"test01","hwcent01") print 'VM Name: ',vminstanceview['name']
print 'VM Resource Group: ',vminstanceview['id'].split('/')[4]
print 'VM Location: ',vminstanceview['location']
print "VM Status: ",vminstanceview['properties']['instanceView']['statuses'][1]['displayStatus']
Azurermconfig.json的文件格式请参考:
https://github.com/gbowerman/azurerm/blob/master/examples/azurermconfig.json.tmpl
过具体输出结果如下:
VM Name: hwcent01
VM Resource Group: test01
VM Location: chinanorth
VM Status: VM deallocated
总结:
Python通过添加模块,实现获取Azure VM运行状态。
通过Python查看Azure VM的状态的更多相关文章
- Azure VM对远程桌面登录的支持-示例
我们在开发Windows Azure的应用程序,虽然在大部分的情况下都可以使用Azure Emulator模拟器来模拟在云端计算节点(Azure VM)的执行结果,但是并不能100%模拟真正在Azur ...
- 了解 Azure VM 的系统重启
有时 Azure 虚拟机 (VM) 可能重启,即使没有明显原因,也没有证据表明用户发起重启操作. 本文列出了可导致 VM 重启的操作和事件,并针对如何避免意外重启问题或减少该问题影响提供见解. 配置 ...
- Azure VM从ASM迁移到ARM(一)
Azure的IaaS有ASM和ARM两个版本,ARM的一些优点前面已经聊过很多了.ARM有更细的管理颗粒度,更多的功能等. 如果想从ASM迁移到ARM,目前有两类方法可以实现: 1. Azure平台支 ...
- 通过PowerShell命令给Azure VM添加CustomScriptExtension
Azure的VM提供了一种管理工具叫Azure VM Extension.它实现了一些管理虚拟机所需要的重要功能,比如:重设密码.设置RDP参数.以及许多其他关键的功能,并且Azure VM一直在添加 ...
- Azure PowerShell (9) 使用PowerShell导出订阅下所有的Azure VM的Public IP和Private IP
<Windows Azure Platform 系列文章目录> 笔者在之前的工作中,有客户提出想一次性查看Azure订阅下的所有Azure VM的Public IP和Private IP. ...
- Windows Azure Virtual Machine (29) 修改Azure VM 数据磁盘容量
<Windows Azure Platform 系列文章目录> 当我们使用Windows Azure管理界面,创建Azure虚拟机的时候,默认挂载的磁盘是固定大小的 1.比如我创建1个Wi ...
- 将 Azure VM 迁移到 Azure 中的托管磁盘
Azure 托管磁盘无需单独管理存储帐户,从而简化了存储管理. 还可以将现有的 Azure VM 迁移到托管磁盘,以便受益于可用性集中 VM 的更佳可靠性. 它可确保可用性集中不同 VM 的磁盘完全相 ...
- 014-通过JDB调试,通过HSDB来查看HotSpot VM的运行时数据
一.JDB调试 在预发环境下进行debug时,时常因为工具和环境的限制,导致debug体验非常差,那么有什么方法能够简化我们进行debug的体验吗?JDB就是一种. JDB ...
- [AWS vs Azure] 云计算里AWS和Azure的探究(5) ——EC2和Azure VM磁盘性能分析
云计算里AWS和Azure的探究(5) ——EC2和Azure VM磁盘性能分析 在虚拟机创建完成之后,CPU和内存的配置等等基本上是一目了然的.如果不考虑显卡性能,一台机器最重要的性能瓶颈就是硬盘. ...
随机推荐
- 主攻ASP.NET.4.5.1 MVC5.0之重生:创建UIHelper通用自定义分页和选择开关与PagesHelper和IsSelect简单用法
@helper放入地方 分页效果 选择开关编辑调用 <dl> <dd class="dc1">是否主管:</dd> <dd> @UI ...
- HDU 2603 二分匹配
#include <queue>#include <vector>#include <cstdio>#include <cstring>#include ...
- 解决MySQL因不能创建 PID 导致无法启动的方法
问题描述 MySQL 启动报错信息如下: ? 1 2 Starting mysqld (via systemctl): Job for mysqld.service failed because t ...
- HDFS-文件写入API
package com.zhen.hdfs; import java.io.BufferedInputStream; import java.io.FileInputStream; import ja ...
- Hadoop的RPC机制源码分析
分析对象: hadoop版本:hadoop 0.20.203.0 必备技术点: 1. 动态代理(参考 :http://www.cnblogs.com/sh425/p/6893662.html )2. ...
- python练习_三级菜单
python练习_三级菜单 需求: 做一个地区查询三级菜单,输入一级能够打印下一级 在第三级个第二级输入e可以返回上一级 在任意一级输入q则退出程序 以下代码实现的功能与思路: 功能: (1)通过In ...
- ubuntu安装与卸载.dep软件
一般情况下我们都是使用apt-get install进行软件安装,但是有时候也有可直接install的文件例如.deb. 接下来就记录一下.dep软件的安装与卸载 安装: 直接找到软件,双击就可以进行 ...
- Spring Boot入门——JDBCTemplate使用及其相关问题解决
1.在pom.xml文件中引入相应依赖 <!-- mysql依赖 --> <dependency> <groupId>mysql</groupId> & ...
- Memcache简介 & 内存分配机制
关于这个东西里面到底应该存放数据网上一直有很多种说法,有的说sql进行md5之后作为键值,结果作为内容存放,也有人说按照业务逻辑错放,反正是炒的不亦乐乎. 本人经过将近2 ...
- 2015 Benelux Algorithm Programming Contest (BAPC 15)E - Excellent Engineers
这题想了很久没思路,不知道怎么不sort维护二维的最小值 emmmm原来是线段树/树状数组,一维sort,二维当成下标,维护三维的最小值 #include<bits/stdc++.h> # ...