QEMU × Ubuntu Cloud Image 環境構築ガイド
このページでは,QEMUとUbuntu Cloud Imageを使って,軽量な仮想環境を構築し,SSH接続まで行う手順をまとめます.
0. 必要なツール
- QEMU
- cloud-init
- genisoimage
- Ubuntu Cloud Image(例:ubuntu-24.04-server-cloudimg-amd64.img)
.IMGファイルのダウンロードは以下のボタンから
各パッケージのインストール
sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virt-manager bridge-utils
1. Cloud-Init 用ファイルを作成
①パスワードハッシュの生成(SHA-512パスワードハッシュ)
openssl passwd -6 'yourpassword'
”yourpassword”に実際にログインするときに使用するパスワードを入力する
user-data
#cloud-config
users:
- name: username # ユーザ名を登録
passwd: "$6$...(生成したSHA-512パスワードハッシュ)"
lock_passwd: false
sudo: ['ALL=(ALL) NOPASSWD:ALL']
shell: /bin/bash
ssh_pwauth: true
meta-data
instance-id: ubuntu
local-hostname: ubuntu
上記の2つのファイルを.imgファイルを保存したところに保存する
2. ISOの作成
sudo apt install genisoimage # インストールされていない場合
genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
3. Ubuntuイメージの準備
cp ubuntu-24.04-server-cloudimg-amd64.img fresh.img
4. 仮想マシンを起動
qemu-system-x86_64 \
-enable-kvm \
-m 2048 \
-drive file=fresh.img,format=qcow2,if=virtio \
-cdrom seed.iso \
-netdev user,id=net0,hostfwd=tcp::2222-:22 \
-device virtio-net,netdev=net0 \
-nographic
5. 別シェルからSSHでログイン
ssh -p 2222 username@localhost
または
ssh -p 2222 username@(リモートマシンのIPアドレス)
パスワードを聞かれるので, ハッシュを作るときに使ったパスワード を入力してください
結果
無事ログインできれば,次のような画面が表示されます:
Welcome to Ubuntu XX.XX.X LTS
.
.
.
username@ubuntu:~$
おまけ
- user-dataを修正した 等の際には,2の操作からやり直してください。
- 終了するときは,Ctrl+A -> X で終了できます。
- 公開鍵認証の設定にも対応可(以下をuser-dataに追加)
ssh_authorized_keys: ・・(公開鍵) - GUI環境の導入(試し中)+VNC接続も可能
これでクラウド仮想マシンのローカル実行が可能になります🎉
📖🖋️ 7/8追記:インターン後復習
QEMU&KVM 仮想マシン
user-dataは同じです.新しくネットワーク接続用YAMLファイルを作成します.
1. network-configを作成
version: 2
ethernets:
enp1s0:
dhcp4: false
optional: false
addresses: [192.168.122.100/24] # なんでもいいですが,192.168.122.*の形で
gateway4: 192.168.122.1 # virtのデフォルトゲートウェイ
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
2. ISOの作成
sudo apt install cloud-image-utils # インストールされていない場合
cloud-localds -N network-config seed.iso user-data
3. Ubuntuイメージの準備
cp noble-server-cloudimg-amd64.img fresh.img
3. Ubuntuイメージの容量変更
ここで設定した容量が直接仮想マシンのディスク容量となります.
qemu-img resize -f qcow2 ./fresh.img 8G
4. 仮想マシンを起動
この仮想マシンは2コア,メモリ3GB(最低限)です.
virt-install \
--import --nographics --noautoconsole --osinfo ubuntu24.04 \
--name step001 --memory 3072 --vcpus 2 \
--disk path=seed.iso,device=cdrom \
--disk path=fresh.img,bus=virtio \
--network default,model=virtio --virt-type kvm
❗ポイント❗
- user-dataを修正した 等の際には,2の操作からやり直してください。
- 仮想マシンを起動するディレクトリは/var/lib/libvirtの下に作成してください。
- 終了するときは,Ctrl + ] で終了できます。
- 公開鍵認証の設定にも対応可(以下をuser-dataに追加)
ssh_authorized_keys: ・・(公開鍵) - ここではUbuntu環境を使用していますが,他のOSのイメージファイルがあればそれでも起動できます。
公式で配布されているものとされていないものがありますので,詳しくは調べて
イメージファイル(.img,.qcow2,.raw)が配布されているOS(一部)
- Ubuntu:
https://cloud-images.ubuntu.com/noble/current - Debian:
https://cloud.debian.org/images/cloud/OpenStack/ - Fedora:
https://ftp.riken.jp/Linux/fedora/releases/42/Cloud/x86_64/images/ - openSUSE:
https://download.opensuse.org/repositories/Cloud:/Images:/ - Alpine:
https://dl-cdn.alpinelinux.org/alpine/v3.22/releases/cloud/ - FreeBSD:
https://download.freebsd.org/releases/VM-IMAGES/14.3-RELEASE/amd64/Latest/
配布されていないOS
- Arch Linux
- Rocky Linux
- CentOS Stream
- Gentoo
- Slackware

