培训
认证
Microsoft Certified: Azure Virtual Desktop Specialty - Certifications
在 Microsoft Azure 上为任何设备计划、交付、管理和监视虚拟桌面体验和远程应用。
你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:✔️ Linux VM ✔️ 灵活规模集
本部分假设已经将从 Debian 网站下载的 .iso 文件中的 Debian Linux 操作系统安装到虚拟硬盘 (VHD)。 可使用多种工具创建 .vhd 文件。 Hyper-V 只是一个示例。 有关 Hyper-V 的使用说明,请参阅安装 Hyper-V 角色和配置虚拟机 (VM)。
convert-vhd
cmdlet 将磁盘转换为 VHD 格式。可以通过全自动安装 (FAI) 云映像生成器创建基本的 Azure Debian 云映像。 若要在没有 FAI 的情况下准备映像,请查看通用步骤文章。
以下 git clone 和 apt 安装命令是从 Debian 云映像存储库中提取的。 首先克隆存储库并安装依赖项:
$ git clone https://salsa.debian.org/cloud-team/debian-cloud-images.git
$ sudo apt install --no-install-recommends ca-certificates debsums dosfstools \
fai-server fai-setup-storage make python3 python3-libcloud python3-marshmallow \
python3-pytest python3-yaml qemu-utils udev
$ cd ./debian-cloud-images
可选:通过向 ./config_space/scripts/AZURE
中添加脚本(例如 shell 脚本)来自定义生成。
$ mkdir -p ./config_space/scripts/AZURE
$ cat > ./config_space/scripts/AZURE/10-custom <<EOF
#!/bin/bash
\$ROOTCMD bash -c "echo test > /usr/local/share/testing"
EOF
$ sudo chmod 755 ./config_space/scripts/AZURE/10-custom
为要自定义映像的任何命令添加 $ROOTCMD
前缀。 它的别名为 chroot $target
。
$ make image_[release]_azure_amd64
此命令会在当前目录中输出少量文件,最重要的是 image_[release]_azure_amd64.raw
映像文件。
将原始映像转换为适用于 Azure 的 VHD:
rawdisk="image_[release]_azure_amd64.raw"
vhddisk="image_[release]_azure_amd64.vhd"
MB=$((1024*1024))
size=$(qemu-img info -f raw --output json "$rawdisk" | \
gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
rounded_size=$(((($size+$MB-1)/$MB)*$MB))
rounded_size_adjusted=$(($rounded_size + 512))
echo "Rounded Size Adjusted = $rounded_size_adjusted"
sudo qemu-img resize "$rawdisk" $rounded_size
qemu-img convert -f raw -o subformat=fixed,force_size -O vpc "$rawdisk" "$vhddisk"
此过程会创建一个具有舍入大小的 VHD image_[release]_azure_amd64.vhd
,以便可以将其成功复制到 Azure 磁盘。
备注
可以通过 FAI 生成和下载当前稳定的映像,而不是在本地克隆 salsa 存储库和生成映像。
创建稳定的 Debian VHD 映像后,请验证是否已安装以下包,然后再上传:
然后执行完整升级:
现在必须为此映像创建 Azure 资源。 此示例使用 $rounded_size_adjusted
变量,因此它应来自上一步的同一 shell 进程。
az group create -l $LOCATION -n $RG
az disk create \
-n $DISK \
-g $RG \
-l $LOCATION \
--for-upload --upload-size-bytes "$rounded_size_adjusted" \
--sku standard_lrs --hyper-v-generation V1
ACCESS=$(az disk grant-access \
-n $DISK -g $RG \
--access-level write \
--duration-in-seconds 86400 \
--query accessSas -o tsv)
azcopy copy "$vhddisk" "$ACCESS" --blob-type PageBlob
az disk revoke-access -n $DISK -g $RG
az image create \
-g $RG \
-n $IMAGE \
--os-type linux \
--source $(az disk show \
-g $RG \
-n $DISK \
--query id -o tsv)
az vm create \
-g $RG \
-n $VM \
--ssh-key-value $SSH_KEY_VALUE \
--public-ip-address-dns-name $VM \
--image $(az image show \
-g $RG \
-n $IMAGE \
--query id -o tsv)
如果从本地计算机到 Azure 磁盘的带宽导致使用 azcopy
处理上传需要很长时间,则可以使用 Azure VM Jumpbox 来加快处理速度。 下面是此过程的实现方式:
tar -czvf ./image_buster_azure_amd64.vhd.tar.gz ./image_[release]_azure_amd64.vhd
。azcopy
实用工具下载到 Azure Linux VM。 可以从 AzCopy 入门检索它。scp ./image_buster_azure_amd64.vhd.tar.gz <vm>:~
。tar -xf ./image_buster_azure_amd64.vhd.tar.gz
。 此步骤需要一些时间,具体取决于文件大小。azcopy
(上文中的命令)将 VHD 复制到 Azure 磁盘。现在可以使用 Debian Linux VHD 在 Azure 中创建新的 VM 了。 如果是首次将 .vhd 文件上传到 Azure,请参阅从自定义磁盘创建 Linux VM。
培训
认证
Microsoft Certified: Azure Virtual Desktop Specialty - Certifications
在 Microsoft Azure 上为任何设备计划、交付、管理和监视虚拟桌面体验和远程应用。