创建 OpenBSD 磁盘映像并上传到 Azure
适用于:✔️ Linux VM ✔️ 灵活规模集
本文介绍如何创建和上传包含 OpenBSD 操作系统的虚拟硬盘 (VHD)。 将其上传后,可以通过 Azure CLI 使用它作为你自己的映像,以在 Azure 中创建虚拟机 (VM)。
先决条件
本文假定你拥有以下项目:
- Azure 订阅:如果没有帐户,只需几分钟即可创建一个。 如果有 MSDN 订阅,请参阅 Visual Studio 订户的每月 Azure 信用额度。 否则,请了解如何创建试用帐户。
- Azure CLI:确保已安装了最新的 Azure CLI 并已使用 az login 登录到 Azure 帐户。
- 安装在 .vhd 文件中的 OpenBSD 操作系统: 必须将受支持的 OpenBSD 操作系统(6.6 版本 AMD64)安装到 VHD 中。 可使用多种工具创建 .vhd 文件。 例如,可使用 Hyper-V 等虚拟化解决方案创建 .vhd 文件并安装操作系统。 有关如何安装和使用 Hyper-V 的说明,请参阅安装 Hyper-V 和创建 VM。
为 Azure 准备 OpenBSD 映像
在安装了 OpenBSD 操作系统 6.1(已添加 Hyper-V 支持)的 VM上,完成以下步骤:
如果在安装过程中未启用 DHCP,请启用服务:
doas echo dhcp > /etc/hostname.hvn0
设置串行控制台:
doas echo "stty com0 115200" >> /etc/boot.conf doas echo "set tty com0" >> /etc/boot.conf
配置包安装:
doas echo "https://ftp.openbsd.org/pub/OpenBSD" > /etc/installurl
默认情况下,在 Azure 中的 VM 上会禁用
root
用户。 用户可以对 OpenBSD VM 使用doas
命令,通过提升的权限运行命令。 默认启用 Doas。为 Azure 代理安装和配置先决条件:
doas pkg_add py-setuptools openssl git doas ln -sf /usr/local/bin/python2.7 /usr/local/bin/python doas ln -sf /usr/local/bin/python2.7-2to3 /usr/local/bin/2to3 doas ln -sf /usr/local/bin/python2.7-config /usr/local/bin/python-config doas ln -sf /usr/local/bin/pydoc2.7 /usr/local/bin/pydoc
可以在 GitHub 上找到 Azure 代理的最新版本。 安装代理:
doas git clone https://github.com/Azure/WALinuxAgent doas cd WALinuxAgent doas python setup.py install doas waagent -register-service
重要
安装 Azure 代理之后,最好验证一下它是否正在运行:
doas ps auxw | grep waagent root 79309 0.0 1.5 9184 15356 p1 S 4:11PM 0:00.46 python /usr/local/sbin/waagent -daemon (python2.7) doas cat /var/log/waagent.log
取消预配系统以清除系统并使其适用于取消预配。 以下命令还会删除上次预配的用户帐户和关联数据:
doas waagent -deprovision+user -force
注意
如果要迁移特定的 VM,但不希望创建通用化映像,请跳过取消预配步骤。
现在可以关闭 VM。
准备 VHD
Azure 不支持 VHDX 格式,仅支持固定大小的 VHD。 可通过使用 Hyper-V 管理器或 PowerShell convert-vhd cmdlet 将磁盘转换为固定 VHD 格式。 下面是一个示例:
Convert-VHD OpenBSD61.vhdx OpenBSD61.vhd -VHDType Fixed
创建存储资源并上传
首先,使用 az group create 创建资源组。 以下示例在 chinaeast
位置创建一个名为 myResourceGroup
的资源组:
注意
在可以在由世纪互联运营的 Microsoft Azure 中使用 Azure CLI 之前,请先运行 az cloud set -n AzureChinaCloud
来更改云环境。 若要切换回 Azure 公有云,请再次运行 az cloud set -n AzureCloud
。
az group create --name myResourceGroup --location chinaeast
若要上传 VHD,请使用 az storage account create 创建存储帐户。 存储帐户名称必须唯一,因此,请提供自己的名称。 以下示例创建名为 mystorageaccount
的存储帐户:
az storage account create --resource-group myResourceGroup \
--name mystorageaccount \
--location chinaeast \
--sku Premium_LRS
若要控制对存储帐户的访问,请使用 az storage account key list 获取存储密钥:
STORAGE_KEY=$(az storage account keys list \
--resource-group myResourceGroup \
--account-name mystorageaccount \
--query "[?keyName=='key1'] | [0].value" -o tsv)
若要从逻辑上划分上传的 VHD,请使用 az storage container create 在存储帐户内创建容器:
az storage container create \
--name vhds \
--account-name mystorageaccount \
--account-key ${STORAGE_KEY}
最后,使用 az storage blob upload 上传 VHD:
az storage blob upload \
--container-name vhds \
--file ./OpenBSD61.vhd \
--name OpenBSD61.vhd \
--account-name mystorageaccount \
--account-key ${STORAGE_KEY}
通过 VHD 创建 VM
可使用示例脚本或直接使用 az vm create 创建 VM。 若要指定你上传的 OpenBSD VHD,请使用 --image
参数:
az vm create \
--resource-group myResourceGroup \
--name myOpenBSD61 \
--image "https://mystorageaccount.blob.core.chinacloudapi.cn/vhds/OpenBSD61.vhd" \
--os-type linux \
--admin-username azureuser \
--ssh-key-value ~/.ssh/id_rsa.pub
请使用 az vm list-ip-addresses 获取 OpenBSD VM 的 IP 地址:
az vm list-ip-addresses --resource-group myResourceGroup --name myOpenBSD61
现在,可如常使用 SSH 连接到 OpenBSD VM:
ssh azureuser@<ip address>
相关内容
- 若要了解有关 OpenBSD 6.1 上的 Hyper-V 支持的详细信息,请参阅 OpenBSD 6.1。
- 若要从托管磁盘创建 VM,请参阅 az disk。