python - 查找 Azure VM 的 Infiniband IP 地址
问题描述
这类似于Is there any python API that can get the IP address (internal or external) of Virtual machine in Azure类似,但我想获取 azure VM 的 infiniband IP 地址。
到目前为止,我可以在 VMSS 中获取 VM 的 NIC,但这只能让我查询 eth0 的私有 IP 地址。如何获取其他接口的 IP 地址?
理想情况下,我想在 Python 中执行此操作
from azure.mgmt.network import NetworkManagementClient
self.network_client = NetworkManagementClient(credentials, AZURE_SUBSCRIPTION_ID)
# get the private IP of a network interface
nic_name = 'redacted'
network_client.network_interfaces.get(GROUP_NAME, nic_name)
private_ip = nic.ip_configurations[0].private_ip_address
解决方案
如果需要获取 VMSS 实例中的所有 VM/网络接口的 IP,您可以使用官方的Azure SDK for Python,如下所示:
# Imports
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.network import NetworkManagementClient
# Set subscription ID
SUBSCRIPTION_ID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
def get_credentials():
credentials = ServicePrincipalCredentials(
client_id='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
secret='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
tenant='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
)
return credentials
# Get credentials
credentials = get_credentials()
# Initialize management client
network_client = NetworkManagementClient(
credentials,
SUBSCRIPTION_ID
)
def get_vmss_vm_ips():
# List all network interfaces of the VMSS instance
vmss_nics = network_client.network_interfaces.list_virtual_machine_scale_set_network_interfaces(
"<VMSS Resource group name>", "<VMSS instance name>")
niclist = [nic.serialize() for nic in vmss_nics]
print "IP addresses in the given VM Scale Set:"
for nic in niclist:
ipconf = nic['properties']['ipConfigurations']
for ip in ipconf:
print ip['properties']['privateIPAddress']
# Get all IPs of VMs in VMSS
get_vmss_vm_ips()
请注意,该network_client.network_interfaces.get()
方法仅获取有关指定网络接口的信息,而该list_virtual_machine_scale_set_network_interfaces()
方法获取虚拟机规模集中的所有网络接口。
参考:
希望这可以帮助!如果不是这样,请告诉我,我们可以进一步探索。
推荐阅读
- windows - Microsoft Azure 备份 (MARS) 未从计划任务运行
- c# - 使用 foreach 循环向字典添加值
- java - zeppelin 错误:对象 hbase 不是包 org.apache.hadoop 的成员
- c++ - 我可以使用 gMock 在测试代码中模拟对象创建吗?
- node.js - 无法将 pdf 文件从机器人发送给 ms 团队中的用户
- android - GearVRf - 使用 GVSphere 图像不可见的场景对象
- javascript - 有没有办法在 CRM/CMS 发送电子邮件之前或之后使用 JavaScript 替换文本?
- sql-server - SQL Server:sp_xml_preparedocument 未从 xml 插入/更新 db 中的数据
- javascript - 如何更改标签中包含的 svg 图像的填充颜色
- regex - 希望 perl 正则表达式替换重新开始并避免 `1 while` 技巧