AWS でおなじみの「Amazon Linux 2」をローカル環境のVM でも構築できるって事で早速ためしてみました。
Amazon サイコー!
Seed.iso を作るのは面倒なのでサンプルのものを使用し、Mate をインスト―ルしてGUI 環境まで作成してます。
Amazon Linux 2 を ローカル環境にインストールする
Contents
対応するVM は以下の4つ。
- VMware
- KVM
- VirtualBox (Oracle VM)
- Microsoft Hyper-V
いろいろと対応されているので迷うところですが、
私の場合は宗教上の理由から「VirtualBox」の一択です。
導入の流れ
通常のインストールと違い、
AWS からインストール済みのVHD をダウンロード して、
自分のバーチャルマシンに組み込んで使うという感じです。
参考:Amazon Linux 2 を仮想マシンとしたオンプレミスでの実行
- seed.iso 起動イメージの作成(諸事情によりAWSからサンプル配布されているものを使用。)
- Amazon Linux 2 インストール済みのVHD をダウンロード。
- ダウンロードしたVHD をVM にマウントして起動する。
- GUI (vnc クライアント使用)など環境を整える。
Amazon linux 2でVNCサーバーを起動して、VNCクライアント経由でGUI を使用。
ユーザー毎に接続先のポートを分けてます。
Amazon Linux 2 の実行に必要なファイルのダウンロード
Seed.iso の準備
seed.iso はAmazon Linux を起動するの際に読み込まれるコンフィギュレーションみたいなものです。
ユーザー作成とか、変更とかいろいろいろと設定を行える仕組みです。
.iso 形式で、ディスクイメージとして作成して、VM 起動時にバーチャルDVD ドライブにマウントして使用します。
Linux とかMac なら既存のコマンドを使用してISO ファイルを作成できるので、
AWS のドキュメント手順に従って作成する流れでOK です。
うまくいかない時とかに、サンプルを使用してみましょう。
残念ながら、Windows の場合のSeed 作成手順は今のところ(2022/9)解説されていませんでした。
下記の方法で作成したISO ではうまく起動ができませんでした。
何かしらソフトウエアを使用しないと無理そうなので、AWS のサンプルSeed.iso を使います。
【Windows 10、11】PowerShell でフォルダからISO ファイルを作成する。New-ISOFile の代用。
サンプルのseed.iso をダウンロード
AWS の説明にある手順だと、seed.iso を自分の環境に合わせて作成していますが、
Windows だとISO ファイルの作成が面倒そうだったので、サンプルでダウンロードしたものを使用してます。
「サンプルのSeed.iso ファイル 」をクリックして、サンプルをダウンロード。
Seed.iso をクリックしてイメージファイルをダウンロード。
AmazonLinux2 インストール済みのVHD をダウンロード
ステップ 2: Amazon Linux 2 VM イメージのダウンロード
使用する仮想化ソフトウェアをクリックして、ハードディスクイメージをダウンロードします。
AmazonLinux2 の起動
VM の作成
新規でVM を作成します。
仮想化ソフトウェアはVirtual Box を使用します。
ハードディスクはダウンロードしたVHD ファイルを使用します。
この辺の設定内容は、仮想化ソフトウェア毎にAWS のドキュメントに解説されていますので、そちらを参考にしてもらえれば良いと思います。
メモリサイズを設定します。
「既にある仮想ハードディスクファイルを使用する」にチェックを入れて、フォルダのアイコンをクリック。
ダウンロードしたVHD を指定して「選択」をクリック。
前の画面に戻り、「作成」をクリックしてVM を作成する。
作成したVM を選択した状態で設定ボタンを押して設定を開く。
ストレージ設定を選択して、光学 ドライブ(DVD ドライブ)のアイコンを選択します。
右端のDVD のアイコンをクリックして、で「ディスクファイルを選択」をクリック。
ダウンロードしたSeed.iso ファイルを選択します。
好みでプロセッサーの数とか、ネットワークの設定など設定します。
VM を起動する
起動ボタンを押して、VM を起動。
こんな感じで起動のログが流れます。
なんか、アップデートも走っている感じです。
適当にログが止まったところでエンターキーを押すと、ログインが表示されるので、
ec2-user / amazon でログインします。
起動できました。
Seed.iso はこのあたりでマウント解除してOK 。
Seed.iso の設定で、ホスト名が「amazonlinux.onprem」になっているので、気になる場合は変更。
sudo hostname amazonlinux.beccou.local
環境設定の確認と変更
サンプルのSeed.iso を使用している場合です。
- ユーザーはデフォルトのユーザーが有効→「ec2-user/amazon」。
- キーボードは英語。
- ネットワークの設定はしていないので、DHCP が有効なら自動でIP が割り当てられている。
(IP アドレスは「ifconfig」で確認。) - SSH 接続はパスワード認証が無効化されている。
キーボードを日本語にする
キーボードの設定が英語で操作しにくいので、日本語に変更します。
キーマップを確認。
localectl list-keymaps
設定を変更。
sudo localectl set-keymap jp106
SSH 接続のパスワード認証を有効化
使い勝手の問題でSSH 接続したいので、SSH のパスワードログインを有効にしてます。
sudo vi /etc/ssh/sshd_config
no を無効化(#をつけてコメントアウト)して、yes を有効化。
vi エディタの使い方はこちら。
再起動すると、ssh 接続をパスワード認証でできるようになります。
PowerShell の方が画面も大きいし、コピペもできて使いやすい^^。
GUI の設定
詳細は下記と同様です。
Mate をインストール
sudo amazon-linux-extras install mate-desktop1.x
設定ファイルを作成。
sudo bash -c 'echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop'
VNC Sever のインストール
sudo yum install tigervnc-server
VNC 接続する時のパスワードを設定します。
vncpasswd
systemd ユニットの作成
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service
sudo sed -i 's/<USER>/ec2-user/' /etc/systemd/system/vncserver@.service
デーモン再起動
sudo systemctl daemon-reload
サービスの有効化。
sudo systemctl enable vncserver@:1
サービスの起動。
sudo systemctl start vncserver@:1
ステータスを確認して、起動していることを確認します。
systemctl status vncserver@:1
vnc viwer のインストール
詳細は引き続き下記同様です。
SSH ポート転送を面倒なのでしていませんが、した方がセキュアでしょう。
TigerVNC をダウンロードしてインストール。
VNC Viewer を起動して、VNC サーバーが起動している状態でIP アドレスとポート(VNC Server)を指定します。
vncpasswd で設定したパスワードで認証します。
パスワード認証をオフにしたい場合は、
ログインするユーザーで下記のオプションを設定して、サービスを再起動します。
sudo echo SecurityTypes=None >> ~/.vnc/config
ユーザー作成
sudo グループに追加しています。
sudo useradd -d /home/unimoni -G wheel,adm unimoni
パスワードの設定
sudo passwd unimoni
アカウントを切り替えて、VNC 接続用のパスワードを設定します。
su unimoni
vncpasswd
ユーザー用のVNC 接続の設定
unimoni 用のVNC サービス(ファイル)をコピーして、ユーザー名を変更する。
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver-unimoni@.service
sudo sed -i 's/<USER>/unimoni/' /etc/systemd/system/vncserver-unimoni@.service
サービスに登録します。
この時、@後ろの「:5」で任意のポート番号で起動するように指定しています。
sudo systemctl enable vncserver-unimoni@:5
sudo systemctl start vncserver-unimoni@:5
起動を確認します。
ポート5 で接続。
ポート番号でユーザーを切り替える感じです。
- ポート1(vncserver@:1)→ ec2-user
- ポート5(vncserver@:5)→ unimoni
Mate を日本語化する
こちらを参照してください。
[AWS] 「Amazon Linux 2」でMATE(GUI) を日本語化する。
Guest Additions のインストール
先に下記をインストールする。
sudo yum install kernel kernel-headers kernel-devel gcc
デバイスをクリックして、「Guset Additions SD イメージの挿入」をクリック。
マウントされます。
Auto Run の問い合わせ・・・みたいなのをそのまま実行してインストールを開始します。
インストール完了。少なくともエラーは見受けられない。
共有フォルダの設定はできるようになったので、壁紙を読み込んで変更します。
Chromium をインストール
sudo amazon-linux-extras install epel
sudo yum install chromium
以上です。