今回は、AWSで利用されるAmazon Linux2をHyper-V上に構築してみます。
Amazon LinuxをHyper-V上で動作させるには、通常のISOファイルからインストールするのではなく、OSがインストールされた仮想ディスクを用意し、設定情報のISOファイルを読み込ませることで、構築が可能です。
期待する目標
本手順で期待する目標は以下の通りです。
- Amazon Linux2を展開できる
- ホスト名・IP・ユーザの設定ができる
- 仮想ディスクからOSを起動できる
前提条件
今回のHyper-V上にAmazon Linuxを展開するために、仮想マシン以外にもISOファイルを作成できるWriterソフトが必要になります。
当環境ではLinuxのマシンを使用してISOファイルを生成しましたが、Windowsの場合だと別途ソフトウェアが必要となります。
Amazon Linux2をインストールする仮想マシンのスペックは以下の通りとなります。
- CPU : 2vCPU
- MEM : 4GB
- DISK : 60GB
- IP : 192.168.100.177
- Hostname : dev-amazon
Amazon Linuxダウンロード
Amazon LinuxはAWSのサイトより、ダウンロードすることができます。
今回ダウンロードするものはISOファイルではなく、OSがインストールされた仮想ディスクです。
ダウンロードしたZIPファイルは展開して、Hyper-Vから参照可能な場所に移動させておきます。
Amazon Linux設定
Amazon LinuxはISOファイルからのインストールではなく、既にインストールされたディスクを起動するようなイメージとなります。
そのため、設定ファイルを用意し起動してあげる必要があります。
エクスプローラより、以下のファイルを作成します。
- meta-data
- user-data
[meta-data]については、仮想マシンの情報を読み込むためのデータとなります。
[user-data]については、仮想マシンのユーザ情報についてのデータとなります。
デフォルトの設定だと、OSの起動時にこのファイルを読み込むようです。
[meta-data]には、以下の内容を記載します。
local-hostname: [Hostname]
# local-hostnameに仮想マシンのホスト名を記載する。
# 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
# eth0の設定をする。
iface eth0 inet static
# eth0をstaticで設定する。
address 192.168.1.10
# eth0のIPアドレスを設定する。
network 192.168.1.0
#仮想マシンが所属するネットワークアドレスを設定する。
netmask 255.255.255.0
#仮想マシンが所属するサブネットを設定する。
broadcast 192.168.1.255
#仮想マシンが所属するネットワークのブロードキャストを設定する。
gateway 192.168.1.254
#仮想マシンが所属するネットワークのデフォルトゲートウェイを設定する。
テキストエディタ等で以上のファイルを記載し、[meta-data]という名前で保存します。
[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:plain_text_password
#ec2-userに対するパスワードを設定する。
# In the above line, do not add any spaces after 'ec2-user:'.
テキストエディタ等で以上のファイルを記載し、[user-data]という名前で保存します。
各設定に関しては、こちらのドキュメントを参照して設定してください。
2つのファイルが作成できたら、2つのファイルをISOファイルに配置します。
Windowsでは、デフォルトでISOファイルを作成する機能が無いので、フリーソフト等を使用してISOファイルを作成してあげます。
今回は、Linuxを使える環境があるので、Linuxで以下のコマンドを実行してISOファイルを作成します。
$ genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
#genisoimageが存在しない場合は、以下のコマンドでインストール可能です。
$ sudo apt install genisoimage
#または
# yum install genisoimage
ISOファイルが生成できたら、仮想マシンの作成準備は完了です。
仮想マシンの設定
仮想ディスクファイルとISOファイルの準備ができたら、Hyper-Vの仮想マシンを作成していきます。
[Hyper-Vマネージャ]より、仮想マシンを作成するHyper-Vサーバ右クリックします。
[新規]-[仮想マシン]を選択します。
[開始する前に]より、[次へ]を選択します。
[名前と場所の指定]より、以下の設定を行います。
- 名前 : 任意の仮想マシン名
- 仮想マシンを別の場所に格納する : ■ (任意)
- 場所 : 仮想マシンを配置するパスを定義
設定が完了したら、[次へ]を選択します。
[世代の指定]より、[第1世代]を選択して、[次へ]を押下します。
[メモリの割り当て]より、任意の起動メモリを割り当てます。
今回の設定は、[4096MB]を設定しました。
設定が完了したら、[次へ]を選択します。
[ネットワークの構成]より、仮想マシンが接続する仮想スイッチを選択します。
[仮想ハードディスク]より、以下の設定を行います。
- 既存の仮想ハードディスクを使用する : ●
- 場所 : ダウンロードしたAmazon Linux2の仮想ハードディスクのパスを設定
設定が完了したら、[次へ]を選択します。
[要約]より作成した仮想マシンの設定を確認し、[完了]を選択します。
仮想マシンを作成したら、作成した仮想マシンを右クリックし、[設定]を選択します。
[仮想マシンの設定]-[プロセッサ]を選択し、必要なコア数を選択します。
コア数やその他の設定を行った後、[IDEコントローラ]-[DVDドライブ]を選択します。
[DVDドライブ]-[メディア]より、イメージファイルを選択し、作成したISOファイルを選択します。
設定が完了したら、[OK]を選択します。
以上で仮想マシンの設定は完了です。
Amazon Linux2起動と確認
仮想マシンの設定が完了したら、仮想マシンを起動していきます。
仮想ディスクからインストールされたAmazon Linuxが起動するため、インストールなどの設定は不要です。
起動後、設定ファイルから作成したユーザとパスワードを使用し、Amazon Linuxにログインします。
デフォルトだと[ec2-user]となります。
ログインに成功すると、Amazon LinuxのCLIが表示されます。
[ip a]のコマンドを使用して、IPアドレスが設定したアドレスになっていることを確認します。
IPアドレスの確認ができたら、[hostname]コマンドを使用して、設定したホスト名になっていることを確認します。
以上で、起動と設定の確認は完了です。
まとめ
今回は、Amazon Linux2をHyper-V上に構築しました。
Hyper-VだとでAWS側がディスクイメージを準備しているため、OSのインストールが不要になり、構築の工数が削減されるので非常に良いと思いました。
また、Amazon Linux2の挙動確認やコマンド確認を行いたいときにAWSのインスタンスを作成しないと確認できませんでしたが、Hyper-V上に構築できることで、インスタンス料金を気にせずに確認ができるようになりました。
検証環境やAWSと統一されたOSでオンプレのLinuxを運用したい方などはこちらの方法を使用することで、運用の効率化を図ることができるのではないでしょうか。
おまけ
本ブログではVMwareやWindows、Linuxのインストール手順等も公開しております。
インフラエンジニアとして有益な記事や無益なコンテンツも作成しておりますので、通勤時間や休憩時間、休日のスキマ時間等に合わせて読んでいただけると幸いです。
また、Youtubeで解説動画も鋭意作成中です。本ブログで記事にしているものも動画にしようと思っておりますので、よろしくお願いいたします。
willserverのnoteも開設したのでフォローお願いします。
コメント