gce-api, Google计算引擎API支持 OpenStack

分享于 

10分钟阅读

GitHub

  繁體 雙語
Google Compute Engine API support for OpenStack
  • 源代码名称:gce-api
  • 源代码网址:http://www.github.com/openstack/gce-api
  • gce-api源代码文档
  • gce-api源代码下载
  • Git URL:
    git://www.github.com/openstack/gce-api.git
    Git Clone代码到本地:
    git clone http://www.github.com/openstack/gce-api
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/openstack/gce-api
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    OpenStack GCE

    对OpenStack的gce api支持。

    安装

    确保安装了 python-pip软件包。

    在'install.sh'文件开始时检查并更正默认选项。

    运行" install.sh"。

    如果需要,请检查/etc/gceapi/gceapi.conf 中的其他选项。

    运行-"gce-api"。

    用法

    从Google下载gcloud并安装它。 https://developers.google.com/compute/docs/gcutil/

    有两种使用方法:

    • 运行授权命令:python google-cloud-sdk/platform/gcutil/gcutil --authorization_uri_base=http://localhost:8787 身份验证
    • 下面是任何其他命令: python google-cloud-sdk/platform/gcutil/gcutil --api_host=http://localhost:8787/--authorization_uri_base=http://localhost:8787 --project演示 listZones
    • 你必须有谷歌帐户
    • 使用gcloud配置设置帐号> 或者授权一个新帐户,你可以激活一个已经授权帐户,接下来你必须在Openstack中通过运行授权命令来授权一个新帐户: gcutil --authorization_uri_base=http://localhost:8787 身份验证和下一步你可以运行任何其他命令: gcutil --api_host=http://localhost:8787/--authorization_uri_base=http://localhost:8787 --project演示 listZones

    让gcutil使用'--api_host'标志和你的GCE授权端点使用'--authorization_uri_base'标志来始终使用你的GCE端点。 也可以将这里设置存储在"~/。gcutil。标志"文件中。

    如果无法正常工作,请检查PYTHONPATH是否导出并正确设置为 /usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages

    限制

    • 名称在GCE中是唯一的,用于标识。 Nova中的名称不唯一。 id被使用。

    解决方案:gce托管OpenStack安装也应该维护唯一的命名。

    • GCE id为 ulong ( 8字节)。 Openstack id可以是不同的( int,字符串),但大部分是 GUID ( 16字节)。

    因为Openstack是不同的,因为 GCE API现在没有使用ID作为参数,所以生成并返回任何ID来报告 ID。

    • GCE允许每个用户SSH密钥规范,但Nova只支持一个键。

    解决方案:Nova GCE API只使用第一个密钥。

    • 默认的Openstack风格可以作为机器类型使用。 GCE不允许机器类型名称中的符号'。',这就是为什么GCE插件插件将符号'。'转换为'获取'请求中的'-'( 比如。 计算机类型的请求将 NAME'm1.tiny'转换为 m1-tiny,而在'put/post/delete'请求中将它的转换为( 比如。 实例创建将 NAME'n1-standard-1'转换为'n1.standard.1')。

    身份验证特定

    GCE API使用 OAuth2.0 进行身份验证。 由于该协议在keystone中的缺失,在nova中加入了该协议的简单实现。 当前实现允许在一个经过认证的用户上运行多个OpenStack项目,作为一个经过认证的用户。 验证过程中返回的初始令牌不包含keystone所需项目的信息。 当将传入的项目信息添加到现有的用户信息中时,会发生另一个身份验证。

    支持功能

    不支持标准查询参数( 字段和prettyPrint除外)。

    支持的资源类型

    • 地址
    • 磁盘
    • 防火墙
    • 图像
    • 范例
    • MachineTypes
    • 网络
    • 项目
    • 区域
    • 区域

    不支持的资源类型

    • ForwardingRules
    • HttpHealthChecks
    • TargetPools

    以下列表:"+"表示支持的"-"不支持

    +Addresses

    +aggregatedList
    获取/project/aggregated/addresses
    +delete删除/project/regions/region/addresses/address
    +get获取/project/regions/region/addresses/address
    +insert发布/project/regions/region/addresses
    +list获取/project/regions/region/addresses

    +Disks

    +aggregatedList
    获取/project/aggregated/disks
    +createSnapshot
    发布/project/zones/zone/disks/disk/createSnapshot
    +delete删除/project/zones/zone/disks/disk
    +get获取/project/zones/zone/disks/disk
    +insert发布/project/zones/zone/disks
    +list获取/project/zones/zone/disks

    +Firewalls

    +delete删除/project/global/firewalls/firewall
    +get获取/project/global/firewalls/firewall
    +insert发布/project/global/firewalls
    +list获取/project/global/firewalls
    -patch修补程序/project/global/firewalls/firewall
    -update放置/project/global/firewalls/firewall

    -ForwardingRules

    -aggregatedList
    获取/project/aggregated/forwardingRules
    -delete删除/project/regions/region/forwardingRules/forwardingRule
    -get获取/project/regions/region/forwardingRules/forwardingRule
    -insert发布/project/regions/region/forwardingRules
    -list获取/project/regions/region/forwardingRules
    -setTarget发布/project/regions/region/forwardingRules/forwardingRule/setTarget

    +GlobalOperations

    +aggregatedList
    获取/project/aggregated/operations
    +delete删除/project/global/operations/operation
    +get获取/project/global/operations/operation
    +list获取/project/global/operations

    -HttpHealthChecks

    -delete删除/project/global/httpHealthChecks/httpHealthCheck
    -get获取/project/global/httpHealthChecks/httpHealthCheck
    -insert发布/project/global/httpHealthChecks
    -list获取/project/global/httpHealthChecks
    -patch修补程序/project/global/httpHealthChecks/httpHealthCheck
    -update放置/project/global/httpHealthChecks/httpHealthCheck

    +Images

    +delete删除/project/global/images/image
    -deprecate发布/project/global/images/image/deprecate
    +get获取/project/global/images/image
    +insert发布/project/global/images
    +list获取/project/global/images

    +Instances

    +addAccessConfig
    发布/project/zones/zone/instances/instance/addAccessConfig
    +aggregatedList
    获取/project/aggregated/instances
    +attachDisk发布/project/zones/zone/instances/instance/attachDisk
    +delete删除/project/zones/zone/instances/instance
    +deleteAccessConfig
    发布/project/zones/zone/instances/instance/deleteAccessConfig
    +detachDisk发布/project/zones/zone/instances/instance/detachDisk
    +get获取/project/zones/zone/instances/instance
    -getSerialPortOutput
    获取/project/zones/zone/instances/instance/serialPort
    +insert发布/project/zones/zone/instances
    +list获取/project/zones/zone/instances
    +reset发布/project/zones/zone/instances/instance/reset
    -setMetadata发布/project/zones/zone/instances/instance/setMetadata
    -setTags发布/project/zones/zone/instances/instance/setTags
    -setScheduling发布/project/zones/zone/instances/instance/setScheduling

    +MachineTypes

    +aggregatedList
    获取/project/aggregated/machineTypes
    +get获取/project/zones/zone/machineTypes/machineType
    +list获取/project/zones/zone/machineTypes

    +Networks

    +delete删除/project/global/networks/network
    +get获取/project/global/networks/network
    +insert发布/project/global/networks
    +list获取/project/global/networks

    +Projects

    +get获取/项目
    +setCommonInstanceMetadata
    发布/project/setCommonInstanceMetadata

    -RegionOperations

    +delete删除/project/regions/region/operations/operation
    +get获取/project/regions/region/operations/operation
    +list获取/project/regions/region/operations

    +Regions

    +get获取/project/regions/region
    +list获取/project/regions

    +Routes

    +delete删除/project/global/routes/route
    +get获取/project/global/routes/route
    +insert发布/project/global/routes
    +list获取/project/global/routes

    +Snapshots

    +delete删除/project/global/snapshots/snapshot
    +get获取/project/global/snapshots/snapshot
    +list获取/project/global/snapshots

    -TargetPools

    -addHealthCheck
    发布/project/regions/region/targetPools/targetPool/addHealthCheck
    -addInstance发布/project/regions/region/targetPools/targetPool/addInstance
    -aggregatedList
    获取/project/aggregated/targetPools
    -delete删除/project/regions/region/targetPools/targetPool
    -get获取/project/regions/region/targetPools/targetPool
    -getHealth发布/project/regions/region/targetPools/targetPool/getHealth
    -insert发布/project/regions/region/targetPools
    -list获取/project/regions/region/targetPools
    -removeHealthCheck
    发布/project/regions/region/targetPools/targetPool/removeHealthCheck
    -removeInstance
    发布/project/regions/region/targetPools/targetPool/removeInstance
    -setBackup发布/project/regions/region/targetPools/targetPool/setBackup

    +ZoneOperations

    +delete删除/project/zones/zone/operations/operation
    +get获取/project/zones/zone/operations/operation
    +list获取/project/zones/zone/operations

    +Zones

    +get获取/project/zones/zone
    +list获取/project/zones

    相关文章