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

オンプレで Amazon Linux 2023を導入

2024年1月9日

メニューへ戻る

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

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

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

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


1.構築手順

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

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


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

ここからの作業は Lubuntu 22.04.3のクライアントPCでやっています。

ダウンロードはこちらから。
Index of /os-images/2023.3.20231218.0

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

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

subro@Lubuntu2204:~/ダウンロード$ ls -l al2023-vmware_esx-2023.3.20231218.0-kernel-6.1-x86_64.xfs.gpt.ova
-rw-rw-r-- 1 subro subro 492083200  1月  9 15:41 al2023-vmware_esx-2023.3.20231218.0-kernel-6.1-x86_64.xfs.gpt.ova

ダウンロードできました。


3.seed.iso作成

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

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

subro@Lubuntu2204:~$ mkdir work/seedconfig

subro@Lubuntu2204:~$ cd work/seedconfig

subro@Lubuntu2204:~/work/seedconfig$

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

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

subro@Lubuntu2204:~/work/seedconfig$ cat meta-data
local-hostname: AmazonLinux2023-1


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

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

subro@Lubuntu2204:~/work/seedconfig$ cat user-data
#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@Lubuntu2204
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] は私の家の光ルーターの IPアドレスです。

subro@Lubuntu2204:~/work/seedconfig$ cat network-config
version: 2
ethernets:
  enp1s0:
    addresses:
      - 192.168.1.105/24
    gateway4: 192.168.1.1
    nameservers:
      addresses: 192.168.1.1


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

subro@Lubuntu2204:~/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)

subro@Lubuntu2204:~/work/seedconfig$ ls -l
total 380
-rw-rw-r-- 1 subro subro     34  1月  9 16:04 meta-data
-rw-rw-r-- 1 subro subro    144  1月  9 16:26 network-config
-rw-rw-r-- 1 subro subro 376832  1月  9 16:36 seed.iso
-rw-rw-r-- 1 subro subro    340  1月  9 16:16 user-data

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


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

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

ダウンロードしたファイル [al2023-vmware_esx-2023.3.20231218.0-kernel-6.1-x86_64.xfs.gpt.ova] と [seed.iso]ファイルを持ってきます。

[D:¥work]フォルダを作って、ダウンロードしたファイルと [seed.iso]ファイルを置きました。
VMwareにインポートするファイルの配置


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

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

[仮想マシンを開く] をクリックします。
インポート 1

[D:¥work]フォルダにある
[al2023-vmware_esx-2023.3.20231218.0-kernel-6.1-x86_64.xfs.gpt.ova]ファイルを選択し、開くを押します。
インポート 2

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

待ちます。
インポート 4

[仮想マシン設定の編集] をクリックします。
インポート 5

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

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

[新規 CD/DVD(IDE)] を選択、[ISO イメージ ファイルを使用する:] を選択し、
参照を押します。
インポート 8

[D:¥work]フォルダに持ってきた [seed.iso]ファイルを選択し、
開くを押します。
インポート 9

OKを押します。
インポート 10

[仮想マシンの再生] をクリックして、仮想マシンを立ち上げます。
インポート 11

しばらく待っていると、ログインプロンプトになります。
Amazon Linux 2023 ログイン画面

Amazon Linux 2023 を VMware Workstation Playerの 仮想OSとして立ち上げることができました。


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

上で作業してた Lubuntu 22.04.3のクライアントPCから設定通りに [192.168.1.105] へ sshログインしに行くんですが、失敗しました。

幸い [ec2-user]ユーザーに初期パスワードを設定していましたので、コンソールでログインして ip addressコマンドなどで調べてみると、どうやら IPアドレスが割り振られていません。

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

VMware Workstation Playerの仮想マシンにすると [enp1s0] では無くなってしまうようです。
※なおエイリアスは [enp11s0] になっていたと思います。

他のツールでも同じかと思いますので、ここを疑ってみて下さい。

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

subro@Lubuntu2204:~/work/seedconfig$ cat network-config
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@Lubuntu2204:~$ ssh ec2-user@AmazonLinux2023-1
The authenticity of host 'amazonlinux2023-1 (192.168.1.105)' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
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.
You are required to change your password immediately (administrator enforced).
You are required to change your password immediately (administrator enforced).

A newer release of "Amazon Linux" is available.
  Version 2023.3.20240108:
Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #_
   ~\_  ####_        Amazon Linux 2023
  ~~  \_#####\
  ~~     \###|
  ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
    ~~~         /
      ~~._.   _/
         _/ _/
       _/m/'
WARNING: Your password has expired.                  ←[ec2-user]のパスワードを設定していたので「変えろ」と言われる。
You must change your password now and login again!
Changing password for user ec2-user.
Current password:password
New password:[ec2-user]の新規パスワード
Retype new password:[ec2-user]の新規パスワードをもう一回
passwd: all authentication tokens updated successfully.

パスワードを変えたら切られましたので、もう一回ログインします。

subro@Lubuntu2204:~$ ssh ec2-user@AmazonLinux2023-1

A newer release of "Amazon Linux" is available.
  Version 2023.3.20240108:
Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #_
   ~\_  ####_        Amazon Linux 2023
  ~~  \_#####\
  ~~     \###|
  ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
    ~~~         /
      ~~._.   _/
         _/ _/
       _/m/'
Last login: Tue Jan  9 18:01:47 2024 from 192.168.1.45
[ec2-user@AmazonLinux2023-1 ~]$



8.初期設定

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

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

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

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

確認

[ec2-user@AmazonLinux2023-1 ~]$ date
2024年  1月  9日 火曜日 18:42:13 JST

良さげです。


9.シャットダウン

いつも通りの。

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


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

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

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