问题

库存与API

  • 2019年5月9日
  • 4回复
  • 1555的浏览量

  • 冒险家
  • 3回复
你好,
有没有办法看到/导出的主机名和IP的虚拟机的API通过cURL?
有人能举个例子来提取这个信息吗?

谢谢
问候

4回复

Userlevel 2
徽章 +4
cURL并不是真正用来作为过滤机制的,但是可以通过将cURL输出设置为一个变量,然后使用egrep来提取所需的字符串来实现这一点。

下面的代码将为您提供从返回的整个JSON中过滤出来的信息。我用API的V2测试了这个:
/ PrismGateway /服务/ rest /版本/ vm / ?长度= 1 &include_vm_nic_config = true

代码:
输出=$(curl -k -X GET 'https://{{IP_ADDRESS}}:9440/PrismGateway/services/rest/v2.0/vms/?length=1&include_vm_nic_config=true' -H '授权:基本{{AuthGuid}}=')

回声输出美元| egrep - o’”的名字 ": *"[^"]*"|" ip_address ": *"[^"]*"'


我真的建议使用Python或JQ模块解析JSON输出的键值对,而不是试图egrep它。它会干净得多:

https://stedolan.github.io/jq/
徽章
谢谢你的回答 @rhunt
是否可以用sed提取'ipAddresses'的内容?例如:

:“hypervisorType kKvm”,
“ipaddress”:(
“172.10.10.10”
],
“memoryCapacityInBytes”:4294967296,
Userlevel 2
徽章 +4
Sed会更难一点。您将不得不使用替换来只打印您想要的数据,而不是整个行。我只使用过用于文件行替换。

我认为sed的正则表达式应该类似这样,以得到您上面所列的内容。测试:

代码:
\“hypervisorType \”,\“[a-zA-Z0-9] + \”,\“ipaddress \”:\[\[0 - 9]{1,3}\”。[0 - 9]{1,3}\。[0 - 9]{1,3}\。[0 - 9]{1,3} \ \], \“memoryCapacityInBytes \”:\ d +
Userlevel 4
徽章 + 19
@guif

请查看脚本

https://github.com/sandeepmp/nutanix/blob/master/get-vm-details.ps1

回复


Baidu