CloudStack API

CloudStack API 是可以被用来实现CloudStack Web UI的底层API。这是良好的基础使其提供比如EC2和S3和新兴的DMTF标准等受欢迎的API。

大多CloudStack的API调用都是异步的. 在调用时它们将立即返回一个任务ID。这个任务ID稍后可以用于查询任务状态。此外,状态调用会在资源受影响时提供一些状态指示。

API基于类似REST的查询, 可以返回XML或JSON格式.

参阅 开发指南参考API.

配置和认证API

CloudStack期望客户都会有自己的用户提供基础设施。它提供的API可与这些现有系统集成,通过外部调用CloudStack添加/删除用户。

CloudStack支持插件类型的身份验证. 默认情况下, CloudStack假定自身提供用户密码,作为本地的验证方式. 但也可以使用外部验证。 例如, 参阅使用LDAP服务器进行用户验证。

用户数据和元数据

CloudStack提供的API访问在部署VM时可附加多达32KB的用户数据。部署虚拟机也可以通过虚拟路由器访问实例的元数据。

一旦得知虚拟路由的IP便可以访问用户数据。得到IP地址后使用如下步骤访问用户数据:

  1. 执行如下命令查找虚拟路由器。

    # cat /var/lib/dhclient/dhclient-eth0.leases | grep dhcp-server-identifier | tail -1
    
  2. 通过上述命令的结果运行如下命令访问用户数据

    # curl http://10.1.1.1/latest/user-data
    

元数据同样可以被访问,使用URL表单 http://10.1.1.1/latest/meta-data/{元数据类型} 。 (为了向后兼容,之前的URL也同样支持 http://10.1.1.1/latest/{元数据类型} 。) 关于元数据类型,请使用以下方法之一:

  • service-offering。VM服务方案的描述。

  • availability-zone。区域名称

  • local-ipv4。VM的来宾地址

  • local-hostname。VM的主机名

  • public-ipv4。第一个IP为路由器的IP。 (E.g. eth2为第一个IP)

  • public-hostname。与public-ipv4相同

  • instance-id。VM实例的名称