2

在 openstack 中创建虚拟机时,可以指定一个密钥对名称,以便将指定的公钥注入到新创建的虚拟机中。

我想知道密钥注入是在哪个机器状态下完成的?鉴于机器处于 ACTIVE 状态,这是否保证密钥注入已完成?

详细信息:我的密钥对配额有限,我想在将每个密钥对注入目标机器后立即从 openstack 中删除它们。我只能访问 openstack ReST API 而不能访问目标 vm。

更新 查看 nova实例表,我可以看到那里也存在“键名”和“键数据”。我认为密钥被复制到该表中,然后不再引用原始密钥。所以删除密钥不应该引起任何问题。我错了吗?

4

1 回答 1

0

您可以做的是尝试 ssh 连接,一旦成功,继续删除密钥对。

要直接回答您的问题,密钥是通过 cloud-init 添加的。您可以在 /var/log/cloud-init.log 中对 ssh 进行 grep,以查看它何时发生。(它发生在 cloud-init 过程的早期)。

我认为没有任何 API 方法可以确定密钥注入的确切时间。处于 ACTIVE 状态的机器并不能保证完成密钥注入的 cloud-init 部分(尽管出于实际目的,它确实很早就发生了)。

您可以尝试通过 nova 控制台日志进行检查。虽然控制台日志的输出缓冲区有限,但它可能会超出关键添加部分,因此您可能无法在控制台日志中看到它。

所以,我认为通过实际的 ssh 连接进行检查是唯一可靠的方法。

于 2015-06-30T17:00:50.663 回答