自动注册 Terraform 创建的客户端

由 Terraform 创建的新客户端可以自动注册到 SUSE Multi-Linux Manager。 注册可以通过两种方式实现:

  • 基于 cloud-init 的注册

  • 基于 remote-exec 置备器的注册

1. 基于 cloud-init 的客户端注册

通过利用 cloud-init 进行注册是自动注册新创建虚拟机的首选方式。 此解决方案避免了配置与主机的 SSH 连接。 它也可以在创建客户端时使用任何工具。

用户可以在使用 Terraform 部署映像时传递用户数据集,以便自动将虚拟机注册到 SUSE Multi-Linux Manager。user_data 只会在启动时运行一次,并且仅在虚拟机首次启动时运行。

在使用 cloud-init 注册客户端之前,用户必须配置:

以下命令将在创建新机器时下载启动脚本并注册该机器。 它应添加到 cloud-init 配置中:

curl -s http://hub-server.tf.local/pub/bootstrap/bootstrap-default.sh | bash -s

每当更新 user_data 以改变预配时,Terraform 都会销毁现有虚拟机,然后重新创建,并分配新的 IP 地址等信息。

2. 基于 remote-exec 的置备器注册

第二种自动注册新创建虚拟机的方法是使用 Terraform 的 remote-exec 置备器。

remote-exec 置备器与新创建的虚拟机进行交互。 它打开一个 SSH 连接,并可以在该机器上运行命令。

使用 remote-exec 置备器注册客户端时,用户必须确保运行 Terraform 的机器在新虚拟机创建后可以访问该虚拟机。

其余要求与使用 基于 cloud-init 的客户端注册 时相同:

以下命令将在创建新机器时下载启动脚本并注册该机器。 它应被定义为要运行的远程命令:

curl -s http://hub-server.tf.local/pub/bootstrap/bootstrap-default.sh | bash -s

有关 remote-exec 置备器的详细信息,请参见 https://www.terraform.io/docs/provisioners/remote-exec.html.