Amazon Linux2を仮想基盤上で実行する
はじめに
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ファイルを作成します。
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ファイルを作成します。
#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上にアップロードします。
Amazon Linux2の仮想マシンイメージをダウンロードする
起動に使用するVMware用のイメージをこちらからダウンロードします。
なお、リンクが切れている場合は「Amazon Linux 2 を仮想マシンとしてオンプレミスで実行する」より最新のイメージファイルのリンクを探してください。
新しい仮想マシンを起動する
これで準備は完了しましたので、仮想マシンの起動します。
1.仮想マシンの作成・登録
ESXiのナビゲータビューより、仮想マシン-仮想マシンの作成・登録を押下してウィザードをスタートさせます。
作成タイプは「OVFファイルまたはOVAファイルからの仮想マシンをデプロイ」を選択します。
こちらの画面でダウンロードしたVMware用イメージを登録します。
この時点では、ホスト名やユーザーの登録ができていないため、ログインができません。続けて2を実施します。
2.Amazon Linux2とseed.isoの紐づけ
Amazon Linux2をseed.isoから起動するように設定します。
まずは、1で起動しているOSを停止させます。
次に設定の編集で「その他のデバイスの追加」から「CD/DVDドライブ」を追加します。
新規追加されたCD/DVDドライブより「データストアISOファイル」を選択。
最後に「仮想マシンオプション」-「起動オプション」より、「強制的にBIOSセットアップ」の項目にチェックを入れて「保存」すれば準備完了です。
3.OSの起動
カーソルキーでBootタブまで移動します。
起動順番を修正して「CD-ROM Drive」を先頭にします。
ログイン画面が表示されたら、ec2-userでログインします。
パスワードはuser-dataで設定したものを使用してください。
SSH接続確認
無事ログインできました。
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 を仮想マシンとしてオンプレミスで実行する
-
上記内容だとonbootが設定されていないため、起動時にeth0が自動起動しません。OS起動後に手動で起動させるか、
/etc/sysconfig/network-scripts/ifcfg-eth0
のonbootをyesに修正してください。 ↩
Author And Source
この問題について(Amazon Linux2を仮想基盤上で実行する), 我々は、より多くの情報をここで見つけました https://qiita.com/daisuke0115/items/edd671ac8f61cedbd65b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .