お金をかけずにサーバーの勉強をしよう

オンプレで Amazon Linux 2023を導入

2024年7月8日

メニューへ戻る

Amazon Linux 2023環境のテストをオンプレで行うため、VMware Workstation Proに仮想マシン(OS)として構築しましょう。

以前「オンプレで Amazon Linux 2を導入」というのを書いていて、Amazon Linux 2023の仮想マシンイメージファイルの配布を待っていましたが、2023年12月には出ていたようです。

これまで自宅で Amazon Linux 2023を味わうには Dockerのコンテナしか無かったのですが、これでやっと仮想OSとして立ち上げることができます。

早速 VMware Workstation Proで入れてみましょう。
(他 Hyper-Vや Virtual Boxのイメージもあるようです。)


1.構築手順

これの 307ページの「Using Amazon Linux 2023 outside of Amazon EC2」って段落に書いてあるのが手順です。
Amazon Linux 2023 user guide

やや難解ですが、やるしかありません。


2.Amazon Linux 2023の仮想OSイメージファイルをダウンロード

私の環境は Windows 10の PCに VMware Workstattion Proをインストールして、そこに仮想マシンを作っていますので、インストール用のメディアファイルは Windows 10でダウンロードします。

最新版のダウンロードはこちらから。
最新版へのリンク

2024年7月8日の時点では 2024年7日1日版となっていました。
これはダウンロードする日によって新しくなっていきます。

私は VMware Workstation Proでやりますので、[vmware/]をクリックします。
Amazon Linux 2023 仮想マシンイメージダウンロード 1

[.ova]拡張子が VMwareの仮想マシンイメージのファイルなので、赤枠のやつをクリックします。
Amazon Linux 2023 仮想マシンイメージダウンロード 2

ダウンロードできました。
Amazon Linux 2023 仮想マシンイメージダウンロード 3


3.[seed.iso]ファイル作成

313ページの「NoCloud (seed.iso) cloud-init configuration for Amazon Linux 2023 on KVM and VMware」の手順になります。

cloud-initの機能により、仮想マシン起動時に諸々の初期値を設定することができる起動用の ISOイメージファイルってとこでしょうか。

この作業で使うツールに適切なものが Lubuntuには最初から入っていましたので、Lubuntu 24.04でやっています。

どこでも良いので [seedconfig]ディレクトリを作り、そこに移動します。

subro@Lubuntu2404:~$ mkdir ~/work/seedconfig

subro@Lubuntu2404:~$ cd ~/work/seedconfig

subro@Lubuntu2404:~/work/seedconfig$

[seedconfig]ディレクトリに移動しました。

[meta-data]ファイルを作成し、中にマシン名を記述します。
マシン名を [AmazonLinux2023-1] としました。
1行書いただけです。

local-hostname: AmazonLinux2023-1


[user-data]ファイルを作成します。
Amazon Linux 2のときのように、デフォルトでは sshのパスワード認証が許されていないと思われます。
ユーザー名と ssh用の公開鍵を書いておきます。

ユーザー名は変えられそうですが EC2っぽくしたいので、手順の例にある通り [ec2-user] にしておきました。
公開鍵は自分の公開鍵に変えましょう。
例では rsa になっていましたが、私は ed-25519 に変えています。
※ついでに [ec2-user]ユーザーのパスワードを「password」に設定しておきます。

#cloud-config
#vim:syntax=yaml
users:
# A user by the name 'ec2-user' is created in the image by default.
- default
- name: ec2-user
  ssh-authorized-keys:
    - ssh-ed25519 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX subro@Lubuntu2404
chpasswd:
  list: |
    ec2-user:password
# In the above line, replace ssh key with the content of your ssh public key.


[network-config]ファイルを作ります。
皆さんは自宅の LANに合わせて変えて下さい。
[192.168.1.105] が Amazon Linux 2023の IPアドレスで、[192.168.1.1] はデフォルトゲートウェイとDNSサーバーのアドレスで、私の環境では光ルーターの IPアドレスです。

version: 2
ethernets:
  enp1s0:
    addresses:
      - 192.168.1.105/24
    gateway4: 192.168.1.1
    nameservers:
      addresses: 192.168.1.1


この時点で3つのファイルができているはずです。

subro@Lubuntu2404:~/work/seedconfig$ ls -l
合計 12
-rw-rw-r-- 1 subro subro  35  7月  8 06:44 meta-data
-rw-rw-r-- 1 subro subro 145  7月  8 06:49 network-config
-rw-rw-r-- 1 subro subro 382  7月  8 06:47 user-data


以下のコマンドを実行すると [seed.iso]ファイルが作成されます。

subro@Lubuntu2404:~/work/seedconfig$ mkisofs -output seed.iso -volid cidata -joliet -rock user-data meta-data network-config
I: -input-charset not specified, using utf-8 (detected in locale settings)
Total translation table size: 0
Total rockridge attributes bytes: 417
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
184 extents written (0 MB)


[seed.iso]ファイルができました。

subro@Lubuntu2404:~/work/seedconfig$ ls -l
合計 380
-rw-rw-r-- 1 subro subro     35  7月  8 06:44 meta-data
-rw-rw-r-- 1 subro subro    145  7月  8 06:49 network-config
-rw-rw-r-- 1 subro subro 376832  7月  8 06:53 seed.iso
-rw-rw-r-- 1 subro subro    382  7月  8 06:47 user-data


[seed.iso]ファイルを(私はUSBメモリで) Windows 10に持っていきました。


4.VMware Workstation Proでの仮想OS作成準備

ここからの作業は VMware Workstation Proを動かしている Windows 10 Homeでやっています。

ダウンロードした [al2023-vmware_esx-2023.5.20240701.0-kernel-6.1-x86_64.xfs.gpt.ova]ファイル と上で作った [seed.iso]ファイルを [D:¥work]フォルダに配置しました。
VMwareにインポートするファイルの配置


5.Amazon Linux 2023の仮想OSを立ち上げる

VMware Workstation Proを起動して下さい。

[Workstation] - [ファイル] - [開く] を選択します。
インポート 1

ファイル選択ウィンドウが開きますので、[D:¥work¥al2023-vmware_esx-2023.3.20231218.0-kernel-6.1-x86_64.xfs.gpt.ova]ファイルを選択します。

[新規仮想マシンの名前:] は VMware Workstation Proのメニュー上に出す名前で、マシン名ではないので任意に分かりやすい名前にしましょう。
[新しい仮想マシンのストレージ パス:] がこの仮想マシンの本体が入るフォルダです。
私は SSD上のフォルダにしています。
インポートを押します。
インポート 2

待ちます。
インポート 3

仮想マシンのインポートができました。
[仮想マシンの設定を編集する] をクリックします。
インポート 4

追加を押します。
インポート 5

[CD/DVD ドライブ] を選択し、完了を押します。
インポート 6

[新規 CD/DVD(IDE)] を選択、[ISO イメージ ファイルを使用する:] を選択、[D:¥work¥seed.iso]ファイルを選択しOKを押します。
インポート 7

[この仮想マシンをパワーオンする] をクリックします。
インポート 8

しばらく待っていると、ログインプロンプトになります。
インポート 9
これでインストールができました。

[seed.iso]ファイルを作成する時に、[user-data]ファイルに [ec2-user]ユーザーのパスワードを [password] で作っておきましたので、ログインしてみましょう。
最初にパスワードを変更しろと指示されるので、新しいパスワードに変えます。
インポート 10


6.しかしながらネットワークは繋がらない

Lubuntuから設定通りに [192.168.1.105] へ sshログインしに行くんですが、失敗しました。

何でだ?と思って IPアドレスの割当を見てみました。
インポート 11
IPv4のアドレスが割り振られていません。

起動時のメッセージをよく見てみると、こんな行が。
インポート 12
「3.seed.iso作成」の手順で作った [network-config]ファイルではネットワークインターフェフィス名を手順にある例のまま [enp1s0] にしているんですが、起動時のメッセージにネットワークインターフェイス名を「[eth0] から [ens192] に変えるよ!」って出てます。

VMware Workstation Proの仮想マシンにすると [enp1s0] ではなくなってしまうようですね。

他の仮想化ツールでも同じかと思いますので「IPアドレスが〜」って状態になったらここを疑ってみて下さい。

[network-config]ファイルは以下のように変えつつ「3.seed.iso作成」からやり直ししました。

version: 2
ethernets:
  ens192:
    addresses:
      - 192.168.1.105/24
    gateway4: 192.168.1.1
    nameservers:
      addresses: 192.168.1.1


さっき作った仮想マシンは削除してのやり直しです。カナシス
仮想マシン削除


7.改めて sshでログオン

[AmazonLinux2023-1] というホスト名は [/etc/hosts]ファイルにて名前解決済みの前提で、今度は上手く行きました。\(^o^)/

subro@Lubuntu2404:~$ ssh ec2-user@AmazonLinux2023-1
The authenticity of host 'amazonlinux2023-1 (192.168.1.105)' can't be established.
ED25519 key fingerprint is SHA256: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'amazonlinux2023-1' (ED25519) to the list of known hosts.
   ,     #_
   ~\_  ####_        Amazon Linux 2023
  ~~  \_#####\
  ~~     \###|
  ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
    ~~~         /
      ~~._.   _/
         _/ _/
       _/m/'
Last login: Mon Jul  8 11:44:54 2024


8.初期設定

とりあえず最新状態にしましょうや。

[ec2-user@AmazonLinux2023-1 ~]$ sudo dnf -y update
〜〜〜 省略 〜〜〜

ロケールが [C](英語) になってますんで日本語にします。

[ec2-user@AmazonLinux2023-1 ~]$ sudo localectl set-locale LANG=ja_JP.UTF-8

タイムゾーンも日本(Asia/Tokyo)にします。

[ec2-user@AmazonLinux2023-1 ~]$ sudo timedatectl set-timezone Asia/Tokyo

ログインし直すと有効になっています。

[ec2-user@AmazonLinux2023-1 ~]$ date
2024年  7月  8日 月曜日 20:56:13 JST

良さげです。


9.シャットダウン

いつも通りの。

[ec2-user@AmazonLinux2023-1 ~]$ sudo poweroff



10.仮想マシンバージョンのアップグレード

これは VMware Workstation Proを使っているこその作業になります。

黄色い枠のところを見ると、仮想マシンのバージョンが [ESXi 6.5] になっていて、やや古い感じがします。
仮想マシンバージョンアップグレード 1
これをVMware Workstation Proが提供できる最新の仮想マシンに変えてしまおうと。

[AmazonLinux2023-1] - [管理] - [ハードウェア互換性の変更] を選択します。
仮想マシンバージョンアップグレード 2

次へを押します。
仮想マシンバージョンアップグレード 3

[ハードウェア互換性] を、このバージョンで一番上の [Workstation 17.5.x] に変えました。
次へを押します。
仮想マシンバージョンアップグレード 4

[この仮想マシンを変更] を選択し、次へを押します。
仮想マシンバージョンアップグレード 5

完了を押します。
仮想マシンバージョンアップグレード 6

閉じるを押します。
仮想マシンバージョンアップグレード 7

変わりました。
仮想マシンバージョンアップグレード 8

この後「もしかすると立ち上がらなくなるかも」と起動してみましたが、問題ありませんでした。


==========
これで Amazon Linux 2023が自宅の PC上でも動くようになりました。

ネットワーク設定でハマりましたが、どうにかやり遂げられました。

コイツを使って Amazon Linux 2023のお勉強に供したいと思います。