散々 Dockerコンテナでやってたけど、よく見りゃオンプレ用のイメージファイルが配布されていた…。
な・・・なにを言っているのかわからねーと思うが(以下略)
自宅で Amazon Linux 2のテストをするには Dockerのコンテナでしかできないと信じ込んでいましたが、インターネット検索してみれば、各種仮想化ソフト用のインストールイメージが配布されていることがサックリと分かったのでした。
これまでの苦労は何だったのか…。
早速 VMware Workstation Playerで入れてみましょう。
手順はこちら。
Amazon Linux 2 を仮想マシンとしたオンプレミスでの実行
やや難解ですが、やるしかありません。
1.仮想OSに設定する値を入れる CD-ROMのイメージファイルを作る
「ステップ 1: seed.iso 起動イメージを準備する」の段落の作業です。
Amazon Linux 2に IPアドレス周りとデフォルトで作られる [ec2-user]ユーザーのパスワードを設定します。
この作業は Linuxでやる前提になっていますので、私は Lubuntu 22.04.2でやっています。
まずどこでも良いのでワーキングディレクトリを作ります。
ホームディレクトリの下に [work/seedconfig]ディレクトリを作り、そこに移動しています。
subro@Lubuntu2204:~$ mkdir -p ~/work/seedconfig
subro@Lubuntu2204:~$ cd ~/work/seedconfig
subro@Lubuntu2204:~/work/seedconfig$
以下のサイトからファイルをダウンロードします。
※リンク先はどんどんアップデートされて名前が変わっていきます。
Index of /os-images/2.0.20230628.0
[seed.iso] をクリックします。
ダウンロードが完了すると [seed.iso]ファイルができますので、上で作ったディレクトリに持っていきます。
上で作ったディレクトリに以下の内容で [meta-data]ファイルを新規に作ります。
ピンク色がホスト名となり、IPアドレス周りは我が家の LAN環境に合わせています。
[meta-data]
local-hostname: amazonlinux2
# eth0 is the default network interface enabled in the image. You can configure static network settings with an entry like the following.
network-interfaces: |
auto eth0
iface eth0 inet static
address 192.168.1.113
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
上で作ったディレクトリに以下の内容で [user-data]ファイルを新規に作ります。
ピンク色が Amazon Linux 2のデフォルトで作られる [ec2-user]ユーザーのパスワードになります。
[user-data]
#cloud-config
#vim:syntax=yaml
users:
# A user by the name `ec2-user` is created in the image by default.
- default
chpasswd:
list: |
ec2-user:password
# In the above line, do not add any spaces after 'ec2-user:'.
# NOTE: Cloud-init applies network settings on every boot by default. To retain network settings
# from first boot, add the following ‘write_files’ section:
write_files:
- path: /etc/cloud/cloud.cfg.d/80_disable_network_after_firstboot.cfg
content: |
# Disable network configuration after first boot
network:
config: disabled
その結果、上で作ったディレクトリの中身はこのようになりました。
subro@Lubuntu2204:~/work/seedconfig$ ls -l
total 384
-rw-rw-r-- 1 subro subro 345 7月 6 19:34 meta-data
-rw-rw-r-- 1 subro subro 374785 7月 6 18:52 seed.iso
-rw-rw-r-- 1 subro subro 581 7月 6 19:38 user-data
[meta-data]ファイルと [user-data]ファイルを [seed.iso]ファイルに取り込みます。
subro@Lubuntu2204:~/work/seedconfig$ genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
I: -input-charset not specified, using utf-8 (detected in locale settings)
Total translation table size: 0
Total rockridge attributes bytes: 331
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
183 extents written (0 MB)
これで設定内容を取り込んだ [seed.iso]ファイルができました。
2.Amazon Linux 2の仮想OSイメージファイルをダウンロード
「ステップ 2: Amazon Linux 2 VM イメージのダウンロード」の段落の作業です。
私は VMware Workstation Playerを Windows 10で動かしていますので、これは Windows 10で作業しました。
以下のサイトにアクセスします。
Index of /os-images/2.0.20230628.0
私の環境は VMware Workstation Playerですので [vmware] をクリックします。
[amzn2-vmware_esx-2.0.20230628.0-x86_64.xfs.gpt.ova] をクリックします。
ダウンロードが完了すると [amzn2-vmware_esx-2.0.20230628.0-x86_64.xfs.gpt.ova]ファイルができました。
[D:¥work]フォルダを作って、今ダウンロードしたファイルと、上で作った [seed.iso]ファイルを置きました。
3.Amazon Linux 2の仮想OSを立ち上げる
「ステップ 3: 新しい VM を起動して接続する」の段落の作業です。
VMware Workstation Playerを起動して下さい。
[仮想マシンを開く] をクリックします。
[D:¥work]フォルダにある
[amzn2-vmware_esx-2.0.20230628.0-x86_64.xfs.gpt.ova]ファイルを選択し、
開くを押します。
[新規仮想マシンの名前] は VMware Workstation Playerのメニュー上に出す名前です。
マシン名ではないので任意に分かりやすい名前にしましょう。
[新しい仮想マシンのストレージパス] がこの仮想マシンの本体が入るフォルダです。
私は SSD上のフォルダにしています。
インポートを押します。
待ちます。
[仮想マシン設定の編集] をクリックします。
追加を押します。
[CD/DVD ドライブ] を選択し、完了を押します。
[新規 CD/DVD(IDE)] を選択、[ISO イメージ ファイルを使用する] を選択し、
参照を押します。
[D:¥work]フォルダに持ってきた [seed.iso]ファイルを選択し、
開くを押します。
OKを押します。
[仮想マシンの再生] をクリックして、仮想マシンを立ち上げます。
しばらく待っていると、ログインプロンプトになります。
ユーザー名は [ec2-user]、パスワードは [password] でログインしました。
[ec2-user]ユーザーは sudoを利用可能ですので、シャットダウン時は以下のようにしましょう。
[ec2-user@amazonlinux2 ~]$ sudo poweroff
これで Amazon Linux 2が自宅のPC上でも動くようになりました。
設定のために Linuxで ISOイメージファイルを作るとか結構面倒臭かったですが、どうにかやり遂げられました。
初期設定について「オンプレ Amazon Linux 2の設定」に書いています。
コイツを使って、Amazon Linux 2のお勉強に供したいと思います。
最新の Amazon Linux 2023についても同じような手順で、「オンプレで Amazon Linux 2023を導入」に書いています。