各大主板厂商纷纷支持下一代带外管理标准redfish。

其实Dell的idrac管理做的是相当好的,那么来看看对redfish的支持吧。

先看看v1都有什么命令

curl -s  "https://10.16.24.15/redfish/v1" -k -u root:alibaba | jq .  
结果如下:
{
  "@odata.context": "/redfish/v1/$metadata#ServiceRoot.ServiceRoot",
  "@odata.id": "/redfish/v1",
  "@odata.type": "#ServiceRoot.v1_1_0.ServiceRoot",
  "AccountService": {
    "@odata.id": "/redfish/v1/Managers/iDRAC.Embedded.1/AccountService"
  },
  "Chassis": {
    "@odata.id": "/redfish/v1/Chassis"
  },
  "Description": "Root Service",
  "EventService": {
    "@odata.id": "/redfish/v1/EventService"
  },
  "Id": "RootService",
  "JsonSchemas": {
    "@odata.id": "/redfish/v1/JSONSchemas"
  },
  "Links": {
    "Sessions": {
      "@odata.id": "/redfish/v1/Sessions"
    }
  },
  "Managers": {
    "@odata.id": "/redfish/v1/Managers"
  },
  "Name": "Root Service",
  "Oem": {
    "Dell": {
      "@odata.type": "#DellServiceRoot.v1_0_0.ServiceRootSummary",
      "IsBranded": 0,
      "ManagerMACAddress": "50:9A:4C:82:B9:3F",
      "ServiceTag": "7Q9N8P2"
    }
  },
  "RedfishVersion": "1.0.2",
  "Registries": {
    "@odata.id": "/redfish/v1/Registries"
  },
  "SessionService": {
    "@odata.id": "/redfish/v1/SessionService"
  },
  "Systems": {
    "@odata.id": "/redfish/v1/Systems"
  },
  "Tasks": {
    "@odata.id": "/redfish/v1/TaskService"
  },
  "UpdateService": {
    "@odata.id": "/redfish/v1/UpdateService"
  }
}

好多服务撒,挑一个看看

curl -s  "https://10.16.24.15/redfish/v1/Chassis" -k -u root:alibaba | jq .  
结果如下:
{
  "@odata.context": "/redfish/v1/$metadata#ChassisCollection.ChassisCollection",
  "@odata.id": "/redfish/v1/Chassis/",
  "@odata.type": "#ChassisCollection.ChassisCollection",
  "Description": "Collection of Chassis",
  "Members": [
    {
      "@odata.id": "/redfish/v1/Chassis/System.Embedded.1"
    },
    {
      "@odata.id": "/redfish/v1/Chassis/Enclosure.Internal.0-1:RAID.Integrated.1-1"
    }
  ],
  "Members@odata.count": 2,
  "Name": "Chassis Collection"
}

试试Session的管理:

curl -v -k -X POST -d '{"UserName":"root","Password":"alibaba"}' -H "Content-Type: application/json" https://10.16.24.15/redfish/v1/Sessions   | jq .  

注意Dell官方的文档里居然不提json的事,直接用它给的命令会报错的,post的数据明显是个json。

结果:
* About to connect() to 10.16.24.15 port 443 (#0)
*   Trying 10.16.24.15... connected
* Connected to 10.16.24.15 (10.16.24.15) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* warning: ignoring value of ssl.verifyhost
* skipping SSL peer certificate verification
* SSL connection using TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
*     subject: E=support@dell.com,CN=idrac-7Q9N8P2,OU=Remote Access Group,O=Dell Inc.,L=Round Rock,ST=Texas,C=US
*     start date: Mar 15 06:13:00 2018 GMT
*     expire date: Mar 15 06:14:22 2028 GMT
*     common name: idrac-7Q9N8P2
*     issuer: E=support@dell.com,CN=idrac-7Q9N8P2,OU=Remote Access Group,O=Dell Inc.,L=Round Rock,ST=Texas,C=US
> POST /redfish/v1/Sessions HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 10.16.24.15
> Accept: */*
> Content-Type: application/json
> Content-Length: 39
> 
} [data not shown]
< HTTP/1.1 201 Created  
< OData-Version: 4.0  
< Keep-Alive: timeout=60, max=199  
< Content-Type: application/json;odata.metadata=minimal;charset=utf-8  
< Server: iDRAC/8  
< Location: /redfish/v1/Sessions/13  
< Date: Wed, 05 Sep 2018 08:26:55 GMT  
< X-Auth-Token: d42c621ee25ad8b49c0d24bbd763f54f  
< Cache-Control: no-cache  
< Content-Length: 745  
< Connection: Keep-Alive  
< Access-Control-Allow-Origin: *  
< Accept-Ranges: bytes  
<  
{ [data not shown]
* Connection #0 to host 10.16.24.15 left intact
* Closing connection #0
{
  "@Message.ExtendedInfo": [
    {
      "Message": "The resource has been created successfully",
      "MessageArgs": [],
      "MessageArgs@odata.count": 0,
      "MessageId": "Base.1.0.Created",
      "RelatedProperties": [],
      "RelatedProperties@odata.count": 0,
      "Resolution": "None",
      "Severity": "OK"
    },
    {
      "Message": "A new resource is successfully created.",
      "MessageArgs": [],
      "MessageArgs@odata.count": 0,
      "MessageId": "IDRAC.1.6.SYS414",
      "RelatedProperties": [],
      "RelatedProperties@odata.count": 0,
      "Resolution": "No response action is required.",
      "Severity": "Informational"
    }
  ],
  "@odata.context": "/redfish/v1/$metadata#Session.Session",
  "@odata.id": "/redfish/v1/Sessions/13",
  "@odata.type": "#Session.v1_0_2.Session",
  "Description": "User Session",
  "Id": "13",
  "Name": "User Session",
  "Password": null,
  "UserName": "root"
}

记下这行:X-Auth-Token: d42c621ee25ad8b49c0d24bbd763f54f

试试这种Session的功效

curl -k https://10.16.24.15/redfish/v1/Chassis -s --header "X-Auth-Token: d42c621ee25ad8b49c0d24bbd763f54f" | jq .  
结果:
{
  "@odata.context": "/redfish/v1/$metadata#ChassisCollection.ChassisCollection",
  "@odata.id": "/redfish/v1/Chassis/",
  "@odata.type": "#ChassisCollection.ChassisCollection",
  "Description": "Collection of Chassis",
  "Members": [
    {
      "@odata.id": "/redfish/v1/Chassis/System.Embedded.1"
    },
    {
      "@odata.id": "/redfish/v1/Chassis/Enclosure.Internal.0-1:RAID.Integrated.1-1"
    }
  ],
  "Members@odata.count": 2,
  "Name": "Chassis Collection"
}

搞定,如果还想需要更多的功能,就去看手册吧。

comments powered by Disqus