-2

我一直在寻找一个 curl 命令,它实际上可以为我提供虚拟服务器的详细信息,例如池名称、IP、HTTP 代码等。我查看了 f5devcentral 页面但没有成功。

4

2 回答 2

1

iControl Rest API与以下内容一起使用:

curl -k -u admin:pw -H "Content-Type: application/json" https://bigip.example.com/mgmt/tm/ltm/virtual/

对于特定的虚拟服务器https://bigip.example.com/mgmt/tm/ltm/virtual/{VS_NAME},用作 API 端点

输出(截断):

{
  "kind": "tm:ltm:virtual:virtualstate",
  "name": "vs.example.com",
  "fullPath": "vs.example.com",
  "generation": 111111,
  "selfLink": "https://localhost/mgmt/tm/ltm/virtual/vs.example.com?ver=13.1.1.2",
  "addressStatus": "yes",
  "autoLasthop": "default",
  "cmpEnabled": "yes",
  "connectionLimit": 0,
  "destination": "/Common/10.1.1.1:80",
  "enabled": true,
  "gtmScore": 0,
  "ipProtocol": "tcp",
  "mask": "255.255.255.255",
  "mirror": "disabled",
  "mobileAppTunnel": "disabled",
  "nat64": "disabled",
  "pool": "/Common/test",
  "poolReference": {
    "link": "https://localhost/mgmt/tm/ltm/pool/~Common~test?ver=13.1.1.2"
  },
...
}
于 2019-04-12T05:45:57.073 回答
0

您可以使用 curl 和 jq 进行 JSON 过滤。获取所有虚拟服务器详细信息:

curl -sk -u user:pass GET https://www.example.com/mgmt/tm/ltm/virtual/ | jq -r

使用 jq 通过嵌套的 JSONkey:value字段进一步选择您想要的信息。列出下的所有嵌套值.items

curl -sk -u user:pass GET https://www.example.com/mgmt/tm/ltm/virtual/ | jq -r '.items'

并进一步深入研究。如果您想要 VIP 名称和 IP 地址:

curl -sk -u user:pass GET https://www.example.com/mgmt/tm/ltm/virtual/ |  jq -r '.items[] .name, .items[] .destination'
于 2019-07-05T12:41:23.507 回答