如何在另一个节点上启动 LXD 容器并与容器交换 ssh 密钥?

How to launch an LXD container on another node and exchange ssh keys with the container?

如何在另一个节点上启动 LXD 容器并与容器交换 ssh 密钥? 即如何让Ansible使用SSH直接访问LXD容器?

我知道 authorized_key 模块,但是这只会在主机和 Ansible 之间交换密钥,而不会在 Ansible 和 LXD 容器之间交换密钥。

机器布局请看下图:

+----------------------------+        +----------------------------+
|                            |        |                            |
|     Baremetal Machine  <------------------+ Ansible Machine      |
|              +             |        |                            |
|              |             |        |                            |
|              |             |        |                            |
|              |             |        |                            |
|   +--------------------+   |        |                            |
|   |          |         |   |        |                            |
|   |          v         |   |        |                            |
|   |    LXD Container   |   |        |                            |
|   |                    |   |        |                            |
|   |                    |   |        |                            |
|   |                    |   |        |                            |
|   |                    |   |        |                            |
|   |                    |   |        |                            |
|   |                    |   |        |                            |
|   |                    |   |        |                            |
|   |                    |   |        |                            |
|   +--------------------+   |        |                            |
|                            |        |                            |
+----------------------------+        +----------------------------+

从支持某种配置系统的镜像启动容器。
最常见的是 cloud-init – 它已经存在于许多官方云映像中。

当您创建这样的容器时,只需通过 user.user-data 配置选项添加所需的配置设置,它会在容器启动时自动应用。

lxd_container module support config parameter to set container configuration options.

您可以找到有用的云配置示例 here