在 Azure 中使用 cloud-init 设置 Linux VM 的主机名

适用于:✔️ Linux VM ✔️ 灵活规模集

本文演示如何在 Azure 中使用 cloud-init 在预配时间配置虚拟机 (VM) 或虚拟机规模集 (VMSS) 上特定的主机名。 Azure 预配资源后,这些 cloud-init 脚本即会在第一次启动时运行。 有关 cloud-init 如何在 Azure 以及受支持的 Linux 发行版中本机工作的详细信息,请参阅 cloud-init 概述

使用 cloud-init 设置主机名称

默认情况下,在 Azure 中创建新的虚拟机时,主机名和 VM 名称相同。 如果希望在 Azure 中使用 az vm create 创建 VM 时通过运行 cloud-init 脚本来更改默认主机名,请通过 --custom-data 开关指定 cloud-init 文件。

要查看操作中的升级进程,请在当前 shell 中创建一个名为“cloud_init_hostname.txt”的文件并粘贴下面的配置 。 对于此示例,请在本地计算机中创建文件。 可使用任何想要使用的编辑器。 请确保已正确复制整个 cloud-init 文件,尤其是第一行。

#cloud-config
fqdn: myhostname

在部署此映像之前,需要使用 az group create 命令创建资源组。 Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。 以下示例在“chinaeast” 位置创建名为“myResourceGroup” 的资源组。

az group create --name myResourceGroup --location chinaeast

现在,使用 az vm create 创建 VM,并通过 --custom-data cloud_init_hostname.txt 指定 cloud-init 文件,如下所示:

az vm create \
  --resource-group myResourceGroup \
  --name vmName \
  --image imageCIURN \
  --custom-data cloud_init_hostname.txt \
  --generate-ssh-keys

注意

相应地替换“myResourceGroup”、“vmName”和“imageCIURN”值。 确保选择了包含 Cloud-init 的映像。

创建后,Azure CLI 将显示有关 VM 的信息。 使用 publicIpAddress 通过 SSH 连接到 VM。 按如下所示输入自己的地址:

ssh <user>@<publicIpAddress>

若要查看 VM 名称,请使用 hostname 命令,如下所示:

sudo hostname

VM 应将主机名称报告为在 cloud-init 文件中设置的值,如以下示例输出中所示:

myhostname

后续步骤

有关配置更改的其他 cloud-init 示例,请参阅以下文章: