こんにちは、さるまりんです。
AWSで使っているAmazon Linux 2の環境を試せるようにVMWare上に作成します。
これから何度もやりそうなので、忘れないようにその手順をメモしておきます。
いろいろと改善していく点もあると思いますが、まずはmac上のVMWareに立ち上げて、ターミナルからsshでログインできるところまでやってみます。
基本的にはAWSのドキュメントにあるこちらの手順に従っています。
1. seed.isoの作成
起動イメージであるseed.isoを作成します。このために二つのドキュメントを用意します。
meta-dataファイル – ホスト名やネットワーク設定を含むファイルです。このファイルに静的ネットワークの設定を入れることもできますが、それはまた別の機会にやってみます。
user-dataファイル – ユーザーアカウント、パスワード、キーペアなどユーザーに関することを設定するファイルです。今回はAmazon Linux 2のユーザーアカウントのパスワードを設定します。
これらのファイルをseedconfigというディレクトリを作ってその中に格納します。
それぞれの内容はこうなっています。
$ cat seedconfig/meta-data
local-hostname: salumarine.localhost
$ cat seedconfig/user-data
#cloud-config
#vim:syntax=yaml
users:
- default
chpasswd:
list: |
ec2-user:salumarine
ssh_pwauth: True
local-hostname:でホスト名をsalumarine.localhostに設定、
chpasswd:の項目の中でec2-userのパスワードをsalumarineに設定、
ssh_pwauth: Trueでsshでのパスワード認証を可能にしています。
上のファイルを含むseed.isoをhdiutilコマンドを使って作成します。
コマンドはこちら↓。
hdiutil makehybrid -o seed.iso -hfs -joliet -iso -default-volume-name cidata seedconfig/
2. イメージのダウンロード
Amazon Linux 2のイメージがVMWare、VirtualBox等に向けてそれぞれ準備されているのでそれをダウンロードします。
ダウンロード先はこちらのページ、中程の「ステップ 2: Amazon Linux 2 VM イメージのダウンロード」のVMWareのリンク先からダウンロードしました。

3. VMを起動!
ダウンロードしたイメージをダブルクリックして起動して進めます。

適当に名前をつけて保存します。今回は「Salu Amazon Linux」としました。

インポート中です。

インポート完了。「設定のカスタマイズ」をクリックします。

設定画面から「デバイス追加」をクリックします。

「CD/DVDドライブ」を選んで「追加」します。

作成したseed.isoイメージを選びます。

VMを起動、ec2-userでログインしてみます。パスワードはuser-dataで設定したものです。

ログインできました。
コマンドip aでIPアドレスをチェックします。

192.168.12.48で振られています。
Macのターミナルからsshで繋いでみます。
% ssh ec2-user@192.168.12.48
The authenticity of host '192.168.12.48 (192.168.12.48)' can't be established.
ECDSA key fingerprint is SHA256:TvFyzxARjubbCYCDaPJpQ1IPQTV25uezmTYRuUeuyA4.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.12.48' (ECDSA) to the list of known hosts.
ec2-user@192.168.12.48's password:
Last login: Sun Feb 28 05:26:21 2021
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@salumarine ~]$
ログインできました!
sudo su -でrootにもなれました。
[ec2-user@salumarine ~]$ sudo su -
[root@salumarine ~]#
meta-dataファイルで指定したホスト名もちゃんと設定されています。
[ec2-user@salumarine ~]$ hostname
salumarine.localhost
EC2を使って開発することが増えているので、手元にAmazon Linux 2の環境があるといろいろ便利になりそうです。
今後は静的ネットワークの設定やキーでのログインなど、改善していく点を調べていきたいと思っています。
読んでくださってありがとうござました。
それではまた!