你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
强化 Linux 映像以移除 Azure 来宾代理
适用于: ✔️ Linux 映像
Azure 支持两个预配代理 cloud-init 和 Azure Linux 代理(WALA),这构成了创建通用映像(Azure 计算库或托管映像)的先决条件。 Azure Linux 代理在一个包中包含预配代理代码和扩展处理代码。
在决定删除 Azure Linux 代理之前,了解 VM 丢失的功能至关重要。 删除来宾代理会删除 Azure Linux 代理中枚举的功能。
本“操作说明”演示了从 Linux 映像中删除来宾代理的步骤。
先决条件
- 如果还没有 Azure 订阅,可以在开始前创建一个免费 Azure 帐户。
- Ubuntu 映像 - 可以从Azure 市场中选择一个。
删除 Azure Linux 代理并准备通用 Linux 映像
创建删除 Azure Linux 代理的映像的步骤如下:
下载 Ubuntu 映像。
装载映像
按照从 Linux 映像中删除 sudo 用户的步骤 2 中的说明装载映像。
删除 Azure Linux 代理
以根身份运行以 删除 Azure Linux 代理
对于 Ubuntu 18.04+
sudo chroot /mnt/dev/$imagedevice/ apt -y remove walinuxagent
注意
如果知道不会再次重新安装 Linux 代理,请删除 Azure Linux 代理项目,可以运行以下步骤。
(可选)删除 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
创建用于预配 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。
卸载映像。
umount /mnt/dev/$imagedevice
准备的映像不再包含 Azure Linux 代理。
使用准备好的映像部署机密 VM。
按照从 Azure 机密 VM 文档的“创建自定义映像”中的 4 开始的步骤部署无代理机密 VM。
注意
如果要使用自定义映像部署 cvm 缩放,请注意,某些与自动缩放相关的功能将受到限制。 手动缩放规则将继续按预期工作,由于无代理自定义映像,自动缩放功能将受到限制。 有关预配代理的限制的详细信息,请参阅此处。 或者,可以导航到 Azure 门户上的“指标”选项卡并确认相同。