gpt4 book ai didi

amazon-ec2 - 使用 OpenStack Nova API 以编程方式设置实例名称

转载 作者:行者123 更新时间:2023-12-03 23:46:12 27 4
gpt4 key购买 nike

我已经接受了这样一个事实,即 EC2 用户习惯的许多功能(特别是标记)在 OpenStack 中不存在。然而,有一项功能的缺失让我发疯。

尽管 OpenStack 不完全支持实例标签(如 EC2 那样),但它 有实例名称的概念。该名称由 Web UI 公开,它甚至允许您设置它:

Instance Name in the instance list

Editing the Instance Name

这个名字也是通过nova list暴露出来的命令行实用程序。

但是(这是我的问题)该字段未通过 nova-ec2 公开API层。他们将其与现有 EC2 平台工具集成的最简洁方法是模拟名称为“Name”的实例标签,但他们不这样做。更重要的是,我无法弄清楚我可以使用哪个 Nova API 端点来读取和写入名称(它似乎没有记录在 API reference 上);但当然它必须以某种方式可能,因为 Web 客户端和 nova-client都可以以某种方式做到这一点。

目前,每次启动新实例时,我都被迫从网站手动更改它。 (我无法在实例创建期间执行此操作,因为我使用的是 nova-ec2 API,而不是 nova 命令行客户端)。

我的问题是:

  • 有没有办法通过 EC2 API 层读/写实例名称?
  • 否则,以编程方式设置它的 REST 端点是什么?
  • (奖金) :Nova 在支持通用实例标记方面的进展如何?
  • 最佳答案

    Python novaclient.v1_1包在 server 上有一个方法目的:

    def update(self, server, name=None):
    """
    Update the name or the password for a server.

    :param server: The :class:`Server` (or its ID) to update.
    :param name: Update the server's name.
    """
    if name is None:
    return

    body = {
    "server": {
    "name": name,
    },
    }

    self._update("/servers/%s" % base.getid(server), body)

    这表明您可以通过 POST-ing 更新服务器的名称
    以下 JSON 到 http://nova-api:port/v2.0/servers/{server-id} :

    {
    "server": {
    "name": "new_name"
    }
    }

    当然,所有常用的身份验证 header (即 X-Auth-Token从您的 Keystone 服务器)仍然需要,因此可能更容易
    使用您喜欢的任何语言的客户端库来管理所有这些。

    关于amazon-ec2 - 使用 OpenStack Nova API 以编程方式设置实例名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10888476/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com