你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

强化 Linux 映像以移除 Azure 来宾代理

适用于: ✔️ Linux 映像

Azure 支持两个预配代理 cloud-initAzure Linux 代理(WALA),这构成了创建通用映像(Azure 计算库或托管映像)的先决条件。 Azure Linux 代理在一个包中包含预配代理代码和扩展处理代码。

在决定删除 Azure Linux 代理之前,了解 VM 丢失的功能至关重要。 删除来宾代理会删除 Azure Linux 代理枚举的功能。

本“操作说明”演示了从 Linux 映像中删除来宾代理的步骤。

先决条件

删除 Azure Linux 代理并准备通用 Linux 映像

创建删除 Azure Linux 代理的映像的步骤如下:

  1. 下载 Ubuntu 映像。

    如何从 Azure 下载 Linux VHD

  2. 装载映像

    按照从 Linux 映像中删除 sudo 用户的步骤 2 中的说明装载映像。

  3. 删除 Azure Linux 代理

    以根身份运行以 删除 Azure Linux 代理

    对于 Ubuntu 18.04+

    sudo chroot /mnt/dev/$imagedevice/ apt -y remove walinuxagent
    

注意

如果知道不会再次重新安装 Linux 代理,请删除 Azure Linux 代理项目,可以运行以下步骤。

  1. (可选)删除 Azure Linux 代理项目。

    如果知道不会再次重新安装 Linux 代理,则可以运行以下操作,跳过此步骤:

    对于 Ubuntu 18.04+

    sudo chroot /mnt/dev/$imagedevice/ rm -rf /var/lib/walinuxagent
    sudo chroot /mnt/dev/$imagedevice/ rm -rf /etc/ walinuxagent.conf
    sudo chroot /mnt/dev/$imagedevice/ rm -rf /var/log/ walinuxagent.log
    
  2. 创建用于预配 VM 的系统服务。

    由于我们删除了 Azure Linux 代理,因此需要提供一种机制来报告就绪。 将此处bash 脚本或 python 脚本的内容复制到装载的映像,并使文件可执行文件(即授予对文件 - chmod 的执行权限)。

    sudo chmod +x /mnt/dev/$imagedevice/usr/local/azure-provisioning.sh
    

    若要确保报告就绪机制,请创建一个 系统服务单元 ,并将以下内容添加到 /etc/systemd/system(此示例将单元文件命名为 azure-provisioning.service)

    sudo chroot /mnt/dev/$imagedevice/ systemctl enable azure-provisioning.service
    

    现在映像已通用化,可用于创建 VM。

  3. 卸载映像。

    umount /mnt/dev/$imagedevice
    

    准备的映像不再包含 Azure Linux 代理。

  4. 使用准备好的映像部署机密 VM。

    按照从 Azure 机密 VM 文档的“创建自定义映像”中的 4 开始的步骤部署无代理机密 VM。

注意

如果要使用自定义映像部署 cvm 缩放,请注意,某些与自动缩放相关的功能将受到限制。 手动缩放规则将继续按预期工作,由于无代理自定义映像,自动缩放功能将受到限制。 有关预配代理的限制的详细信息,请参阅此处。 或者,可以导航到 Azure 门户上的“指标”选项卡并确认相同。

后续步骤

为 Azure 机密 VM 创建自定义映像