2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

リリース前の Ubuntu 22.04 イメージを Azure に持ち込み VM 作成までやってみた

Posted at

背景と目的

Azure のイメージギャラリーで提供されていない OS イメージや、提供されていても有料だったり、オンプレで動かしているアプリ込みの OS を丸ごとカスタムイメージにしたい場合など、何かしら Azure に OS イメージを持ち込みたいケースがあると思います。今回は、リリース前の Ubuntu 22.04 を検証する目的で、Canonical が用意しているデイリービルドの Azure 用 VHD を利用して、Azure VM 作成まで試してみました。

前提条件

コマンドの実施環境は、Mac + Azure CLI です。

bash
$ sw_vers
ProductName:    macOS
ProductVersion: 12.2.1
BuildVersion:   21D62

$ az version
{
  "azure-cli": "2.32.0",
  "azure-cli-core": "2.32.0",
  "azure-cli-telemetry": "1.0.6",
  "extensions": {}
}

Ubuntu 22.04 の OS イメージをダウンロード

https://cloud-images.ubuntu.com/jammy/20220204/

bash
wget https://cloud-images.ubuntu.com/jammy/20220204/jammy-server-cloudimg-amd64-azure.vhd.zip

unzip jammy-server-cloudimg-amd64-azure.vhd.zip

ls -lh livecd.ubuntu-cpc.azure.vhd

ストレージアカウントに VHD をアップロード

bash
# 環境変数をセットします
region=japaneast
prefix=mnrcust

# リソースグループを作成します
az group create \
  --name ${prefix}-rg \
  --location $region

# ストレージアカウントを作成します
az storage account create \
  --name ${prefix} \
  --resource-group ${prefix}-rg \
  --sku Standard_LRS

# ストレージアカウントにストレージ BLOB データ共同作成者ロールを自分自身に割り当てます
az ad signed-in-user show \
  --query objectId \
  --output tsv \
  | az role assignment create \
  --role "Storage Blob Data Contributor" \
  --assignee @- \
  --scope $(az storage account show \
  --name ${prefix} \
  --resource-group ${prefix}-rg \
  --query id \
  --output tsv)

# コンテナを作成します
az storage container create \
  --account-name ${prefix} \
  --name disks \
  --auth-mode login

# VHD をアップロードします
az storage blob upload \
  --account-name ${prefix} \
  --container-name disks \
  --name livecd.ubuntu-cpc.azure.vhd \
  --file livecd.ubuntu-cpc.azure.vhd \
  --auth-mode login

検証用の仮想マシンを作る

bash
# ストレージアカウントにアップロードした VHD から管理ディスクを作成します
az disk create \
  --resource-group ${prefix}-rg \
  --name ubuntu2202-0204 \
  --sku Standard_LRS \
  --source https://${prefix}.blob.core.windows.net/disks/livecd.ubuntu-cpc.azure.vhd

# 管理ディスクから OS イメージを作成します
az image create \
  --resource-group ${prefix}-rg \
  --name ubuntu2202-0204 \
  --os-type Linux \
  --source ubuntu2202-0204

# SSH キーペアをファイル名を指定して作成します
ssh-keygen -m PEM -t rsa -b 4096 \
  -f ${prefix}

# 検証用の仮想マシンを作成します
az vm create \
  --resource-group ${prefix}-rg \
  --name ${prefix}-vm \
  --os-disk-name ${prefix}-vmOSDisk \
  --image ubuntu2202-0204 \
  --size Standard_B1ls \
  --admin-username azureuser \
  --ssh-key-value ${prefix}.pub \
  --nsg-rule NONE \
  --public-ip-address-dns-name ${prefix}

# NSG に自分の IP アドレスから SSH 接続出来るようにします
az network nsg rule create \
  --resource-group ${prefix}-rg \
  --name Allow-SSH \
  --nsg-name ${prefix}-vmNSG \
  --priority 100 \
  --source-address-prefixes $(curl -s inet-ip.info) \
  --destination-port-ranges 22 \
  --access Allow \
  --protocol Tcp

# 仮想マシンに SSH 接続します
ssh -i ${prefix} azureuser@${prefix}.$region.cloudapp.azure.com

# OS 情報を表示します
$ cat /etc/os-release 
PRETTY_NAME="Ubuntu Jammy Jellyfish (development branch)"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04 (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

参考

作成したリソースを削除します。

bash
# リソースグループを削除します
az group delete \
  --name ${prefix}-rg \
  --yes

# 作成した SSH キーペアを削除します
rm -f ${prefix}*

# ダウンロードした Ubuntu を削除します
rm -f jammy-server-cloudimg-amd64-azure.vhd.zip livecd.ubuntu-cpc.azure.vhd

https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/create-upload-ubuntu

https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-quickstart-blobs-cli

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?