Help us understand the problem. What is going on with this article?

Amazon Linux2を仮想基盤上で実行する

More than 1 year has passed since last update.

はじめに

AWSの勉強をしている中で手元でAmazon Linux2の検証を行いたいと思い、以下の資料を元に設定方法をまとめました。なお、今回はESXiを使用していますが、KVMやVartualBoxなどの他の仮想プラットフォームで実施する場合も基本的な流れは一緒ですので参考にして頂けますと幸いです。

参考:Amazon Linux 2 を仮想マシンとしてオンプレミスで実行する

作業手順

ざっくりとした作業の流れは以下の通りです。
・seed.iso起動イメージの作成
・Amazon Linux2の仮想マシンイメージをダウンロード
・新しい仮想マシンを起動する

用意するもの

・ESXiサーバー
 Amazon Linux2を稼働させるESXiサーバー
 VMware Workstation 14 Player上にESXi6.5をネステッド環境にして用意。

・Amazon Linux2の仮想マシンイメージファイル
 最新のファイルはこちらからダウンロード可能。

・isoイメージを作成するための環境
 起動用のisoファイルを作成するために必要になります。
 今回はCentOS7.5を使用しましたがgenisoimageコマンドが使えれば何でもOKです。

seed.iso起動イメージの準備

ES2のインスタンスを作成する際の「高度な詳細」で指定するユーザーデータにあたる部分です。仮想基盤上のイメージに適用するために、isoイメージで作成します。

1.環境準備

作業環境(CentOS7.5)でisoイメージを作成するために必要となるパッケージを準備します。
以下のコマンドでgenisoimageを導入します。
yum install genisoimage

次に作業用のディレクトリを作成します。
mkdir seedconfig
これで環境準備は完了です。

2.meta-dataの作成

seedconfigディレクトリ配下でmeta-dataファイルを作成します。

meta-data
local-hostname: [ホスト名]

#network-interfaces: |
#  iface eth0 inet static
#  address 192.168.xx.xx
#  network 192.168.xx.0
#  netmask 255.255.255.0
#  broadcast 192.168.xx.255
#  gateway 192.168.xx.2

今回はホスト名のみ指定し、IPアドレスはDHCPで自動で割り振るようにします。
Networkを静的に指定する場合は、network-interfaces以下のコメントを外してください1

3.user-dataの作成

同じくseedconfigディレクトリ配下でuser-dataファイルを作成します。

user-data
#cloud-config
users:
  - default
chpasswd:
  list: |
    ec2-user:[パスワード]
ssh_pwauth: True
locale: ja_JP.UTF-8

runcmd:
  - [ cp, /usr/share/zoneinfo/Asia/Tokyo, /etc/localtime]

ここではデフォルトで必要と思われる以下の項目を設定しています。
必要に応じて、こちらを参考に追記修正を行ってください。
・ec2-userの作成
・ec2-userのパスワード設定
・SSH接続時のパスワードでの接続許可
・ロケールを「ja_JP.UTF-8」に設定
・タイムゾーンを「Asia/Tokyo」にする

4.イメージファイルの作成

seedconfigディレクトリ配下で以下のコマンドを実行してISOファイルを作成します。
genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data

実行例
[root@localhost]# genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
I: -input-charset not specified, using utf-8 (detected in locale settings)
Total translation table size: 0
Total rockridge attributes bytes: 331
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
183 extents written (0 MB)
[root@localhost]#

カレントディレクトリにseed.isoができていれば成功です。
作成したイメージファイルはSCPなどで手元に持ってきてください。

5.ESXiにイメージファイルをアップロードする

3で作成したseed.isoをESXi上にアップロードします。
image.png

image.png

無事アップロードができました。
image.png

Amazon Linux2の仮想マシンイメージをダウンロードする

起動に使用するVMware用のイメージをこちらからダウンロードします。
なお、リンクが切れている場合は「Amazon Linux 2 を仮想マシンとしてオンプレミスで実行する」より最新のイメージファイルのリンクを探してください。

新しい仮想マシンを起動する

これで準備は完了しましたので、仮想マシンの起動します。

1.仮想マシンの作成・登録

ESXiのナビゲータビューより、仮想マシン-仮想マシンの作成・登録を押下してウィザードをスタートさせます。
image.png

作成タイプは「OVFファイルまたはOVAファイルからの仮想マシンをデプロイ」を選択します。
image.png

こちらの画面でダウンロードしたVMware用イメージを登録します。
image.png

その他の項目はデフォルトで問題ないです。
image.png

image.png

最後に「完了」を押下します。
image.png

image.png

タスクが全て完了すれば終了です。
image.png

この時点では、ホスト名やユーザーの登録ができていないため、ログインができません。続けて2を実施します。

2.Amazon Linux2とseed.isoの紐づけ

Amazon Linux2をseed.isoから起動するように設定します。

まずは、1で起動しているOSを停止させます。

image.png

次に設定の編集で「その他のデバイスの追加」から「CD/DVDドライブ」を追加します。
image.png

新規追加されたCD/DVDドライブより「データストアISOファイル」を選択。
image.png

先ほどアップロードしたseed.isoをマウントします。
image.png

最後に「仮想マシンオプション」-「起動オプション」より、「強制的にBIOSセットアップ」の項目にチェックを入れて「保存」すれば準備完了です。

image.png

3.OSの起動

パワーオンボタンでOSを起動します。
image.png

起動するとまずBIOS画面が表示されます。
image.png

カーソルキーでBootタブまで移動します。

image.png

起動順番を修正して「CD-ROM Drive」を先頭にします。
image.png

F10キーでSaveした上でBIOS画面から抜けます。
image.png

OSが起動するのを待ちます。
image.png

ログイン画面が表示されたら、ec2-userでログインします。
パスワードはuser-dataで設定したものを使用してください。
image.png

SSH接続確認

IPとパスワードでSSH接続を行います。
image.png

無事ログインできました。

Last login: Thu Sep 00 00:00:00 2018 from xxx.xxx.xxx.xxx

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
5 package(s) needed for security, out of 344 available
Run "sudo yum update" to apply all updates.
[ec2-user@amazonlinux ~]$

おわりに

今回の作業ですが、cloud-Initについての知見が乏しいため、seed.isoの作成で大いにハマってしまいました。記述した内容について、もっとこうした方が良いという意見がございましたコメント頂けますと助かります。

参考:Amazon Linux 2 を仮想マシンとしてオンプレミスで実行する


  1. 上記内容だとonbootが設定されていないため、起動時にeth0が自動起動しません。OS起動後に手動で起動させるか、/etc/sysconfig/network-scripts/ifcfg-eth0のonbootをyesに修正してください。 

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away