こんにちは、インフラエンジニアのさかもとです。
少し古い情報になりますが、2023年12月に Amazon Linux 2023 の仮想マシンイメージが利用可能となりました。
ただ 2024年2月時点でサポートされている仮想プラットフォームは KVM および VMware のみのため、手軽にローカルで Amazon Linux 2023 を試してみることができません。
そこで今回は VMware 用のイメージを利用し、VirtualBox 上で Amazon Linux 2023 を起動させる方法を紹介します。
- 0. 環境
- 1. Amazon Linux 2023 VMware イメージのダウンロード
- 2. VMDK ファイルの取り出し
- 3. Seed.iso の準備
- 4. VirtualBox で仮想マシンの作成
- 5. 「Seed.iso」の設定
- 6. 仮想マシンの起動
- その他、初期設定など
- さいごに
0. 環境
動作検証を行った環境は以下の通りです。
OS | Microsoft Windows 10 Pro Build 19045 |
VirtualBox | 7.0.14 r161095 |
また Amazn Linux 2023 のシステム要件は以下になります。 docs.aws.amazon.com
試してはいませんが mac でも同じ手順で動くはずなので、mac ユーザの方も読み進めていただければと思います。
1. Amazon Linux 2023 VMware イメージのダウンロード
VMware 用のイメージ(OVA)*1を利用するため以下よりダウンロードします。
https://cdn.amazonlinux.com/al2023/os-images/latest/vmware/
※ 2024年2月19日時点では「latest」は「2023.3.20240205.2」へリダイレクトされます。
今回ダウンロードしたファイルは「al2023-vmware_esx-2023.3.20240205.2-kernel-6.1-x86_64.xfs.gpt.ova」になります。
2. VMDK ファイルの取り出し
VirtualBox では OVA ファイルをインポートする機能がありますが、インポートでは正常に起動しなかったため、
OVA ファイルを解凍し、VMDK*2 ファイルを取り出します。
>tar -zxvf al2023-vmware_esx-2023.3.20240205.2-kernel-6.1-x86_64.xfs.gpt.ova x al2023-vmware_esx-2023.3.20240205.2-kernel-6.1-x86_64.xfs.gpt.ovf x al2023-vmware_esx-2023.3.20240205.2-kernel-6.1-x86_64.xfs.gpt.mf x al2023-vmware_esx-2023.3.20240205.2-kernel-6.1-x86_64.xfs.gpt-disk1.vmdk
※ tar コマンドは Windows 10 versoin.1803 以降、標準で利用可能
(参考)
ちなみに VMDK ファイルを VirtualBox 固有の仮想ディスクイメージファイルである VDI に変換したい場合は、VBoxManage ツールを利用することで変換が可能です。
VBoxManage ツールは VirtualBox のインストールフォルダ配下にありますので、パスが通っていない場合はインストールフォルダに移動するか、フルパスを指定して以下コマンドを叩いてください。
>vboxmanage clonemedium al2023-vmware_esx-2023.3.20240205.2-kernel-6.1-x86_64.xfs.gpt-disk1.vmdk al2023-vmware_esx-2023.3.20240205.2.vdi --format VDI 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'VDI'. UUID: 9519af59-17ae-4082-a27a-bd09c1bd9faa
3. Seed.iso の準備
VirtualBox で起動 ! 。。。の前に、ホスト名やユーザ設定をするための「Seed.iso」を作成します。
ただ、Windows では少し作成するのが手間なので Amazon Linux 2 起動用に公開されているものを拝借します。
以下よりダウンロードしてください。
https://cdn.amazonlinux.com/os-images/2.0.20220426.0/
※ 最新のものはファイルが壊れているため、過去バージョン(2.0.20220426.0)のものをダウンロードします。
自前で Seed.iso を作成する場合は以下を参考にしてください。
ダウンロードした「Seed.iso」の中身は以下内容となっており、ホスト名、ログイン情報などが含まれています。
Seed.iso/meta-data
local-hostname: amazonlinux.onprem # eth0 is the default network interface enabled in the image. You can configure # static network settings with an entry like below. #network-interfaces: | # iface eth0 inet static # address 192.168.1.10 # network 192.168.1.0 # netmask 255.255.255.0 # broadcast 192.168.1.255 # gateway 192.168.1.254
- ホスト名: amazonlinux.onprem
Seed.iso/user-data
#cloud-config # vim:syntax=yaml users: # A user by the name ec2-user is created in the image by default. - default # Following entry create user1 and assigns password specified in plain text. # Please not use of plain text password is not recommended from security best # practises standpoint - name: user1 groups: sudo sudo: ['ALL=(ALL) NOPASSWD:ALL'] plain_text_passwd: amazon lock_passwd: false # Following entry creates user2 and attaches a hashed passwd to the user. Hashed # passwords can be generated with: # python -c 'import crypt,getpass; print crypt.crypt(getpass.getpass())' - name: user2 passwd: amazon lock_passwd: false - name: user3 ssh-authorized-keys: - ssh-rsa ~ 略 ~ lock_passwd: true chpasswd: list: | ec2-user:amazon
- ログイン情報 ※有効なもののみ記載
- ユーザー名/パスワード: user1/amazon
- ユーザー名/パスワード: ec2-user/amazon
4. VirtualBox で仮想マシンの作成
Amazon Linux 2023 を起動するための仮想マシンを作成していきます。
① VirtualBox を起動し、「新規」ボタンを押下
② 「仮想マシンの名前とOS」で各項目を入力
名前 | なんでも OK(例では Amazon Linux 2023 としました) |
フォルダー | どこでも OK |
タイプ | Linux |
バージョン | Linux 2.6 / 3.x / 4.x / 5.x (64-bit) |
③ 「ハードウェア」で各項目を入力
最小構成を満たしていればなんでも OK。例では以下にしました。
メインメモリー | 1024 MB ※ Amazon Linux 2023 での最小構成は 512 MB |
プロセッサー数 | 1 |
④ 「仮想ハードディスク」を設定
「すでにある仮想ハードディスクファイルを使用する」を選択し、VMDK ファイル(あるいは VDI ファイル)を指定します。
5. 「Seed.iso」の設定
① 作成した仮想マシンの「設定」ボタンを押下
② 「設定」> 「ストレージ」を開き、「コントローラー:IDE」に「Seed.iso」を設定
設定は以上です。
(参考)CLI での仮想マシン作成手順は以下 ※クリックで展開
>vboxmanage createvm --name "Amazon Linux 2023" --ostype Linux26_64 --register >vboxmanage modifyvm "Amazon Linux 2023" --cpus 1 --memory 1024 --audio-driver none >vboxmanage storagectl "Amazon Linux 2023" --name IDE --add ide >vboxmanage storagectl "Amazon Linux 2023" --name SATA --add sata --portcount 1 >vboxmanage storageattach "Amazon Linux 2023" --storagectl IDE --port 1 --device 0 --type dvddrive --medium Seed.iso >vboxmanage storageattach "Amazon Linux 2023" --storagectl SATA --port 0 --device 0 --type hdd --medium al2023-vmware_esx-2023.3.20240205.2-kernel-6.1-x86_64.xfs.gpt-disk1.vmdk
6. 仮想マシンの起動
いよいよ起動です!
① 作成した仮想マシンの「起動」を押下
しばらくすると。。。起動しました!
②「ec2-user」でログイン
ユーザ名「ec2-user」、パスワード「amazon」でログインします。
ec2-user での初回ログイン時はパスワード変更を求められるので適当なパスワードを設定します。
ログインできました!
一応ホストネームを確認すると、Seed.iso で定義していた「amazonlinux.onprem」が設定されていることがわかるかと思います。
その他、初期設定など
キーボード配列を設定する
初期状態ではキーボード配列が設定されていないので設定します。
例では日本語キーボード配列を設定しました。
① 現在の設定を確認
② 「jp-OADG109A」を設定
③ 設定後の確認
パスワード認証による SSH 接続を許可する
VirtualBox の仮想スクリーン上で操作するのはつらいので、SSH クライアントで接続するためパスワード認証での SSH 接続を許可します。
※ つらくないよ!って方や Seed.iso(cloud-init)を自作し SSH 鍵認証の設定している方は読み飛ばしてください。
※ また Seed.iso でパスワード認証の設定をすることも可能です。詳細は以下に記載の「ssh_pwauth」を参照ください。
https://cloudinit.readthedocs.io/en/latest/reference/modules.html#set-passwords
① SSH サーバの設定ファイルを編集
# vi /etc/ssh/sshd_config -PasswordAuthentication no +PasswordAuthentication yes
② 設定ファイルの構文チェック
# sshd -t ※問題がない場合は何も表示されません
③ SSH サーバの再起動
# systemctl restart sshd.service
④ NAT ネットワークにポートフォワーディングの設定
仮想マシンに NAT ネットワークが割り当てられているのでポートフォワーディングの設定をします。
作成した仮想マシンの「設定」を押下
「設定」> 「ネットワーク」 > 「高度」 > 「ポートフォワーディング」を開き、ポートフォワーディングルールを追加
例ではホストポート(ローカル PC 側)を「2222」、ゲストポート(仮想マシン側)を「22」に設定しました。
⑤ SSH クライアントで接続する
好きな SSH クライアントでローカル PC の IP、ポート「2222」を指定して、「ec2-user」でログインしてください。
ハッピー!!!!
仮想 NIC を追加する
仮想 NIC を追加した場合は /etc/systemd/network
ディレクトリにカスタム設定ファイルを配置する必要があります。
詳細は以下を参照してください。
さいごに
そのうち公式から提供されるかと思いますが、Amazon Linux 2023 VMware 用のイメージから VMDK ファイルを取り出し VirtualBox で起動させてみました。
ローカル PC 上でも Amazon Linux 2023 の OS を利用することができるので参考にしてください。
ただし、今回の手順は正常に動作することを保証するものではありませんので、その点はご留意ください。
(公式からイメージが提供されたおりにはひっそりとこの記事は削除します。)
*1:Open Virtual Appliance。仮想マシンの構成や状態を TAR 形式で単一のファイルにまとめたもの
*2:Virtual Machine Disk。仮想マシンが利用する仮想ディスクイメージ。VMware 社が策定し、仕様公開されているため VMware 社製品以外の仮想化製品でも利用可能