Amazon Linux 2 が出たので VMware ESXi で動かしてみる
2017年12月14日に、Amazon Linux 2 がリリースされました。
なんとオンプレミス環境に対応し、仮想マシンイメージが提供されています。
新バージョンのお試しも兼ねて VMware 環境にセットアップしつつ、躓いたポイントをまとめました。
Amazon Linux 2
AWS の提供する Linux ディストリビューションがメジャーアップデートされました。
アップデート内容は 公式ブログ が詳しいのでそちらを参照。3行でまとめると……
- LTS 版で5年間のサポート
- Linux Kernel 4.9 & systemd 対応
- オンプレミス向けマシンイメージ提供
本番環境が Amazon Linux の場合は、課金を気にせずに VMware で同じ環境を動かせる ようになりました。ありがたい。さっそく作ってみましょう。
イメージ取得
S3 + CloudFront で動いていそうな 公式リポジトリ から取得可能です。
今回は VMware 向けを利用しますが、他にも複数用意されているようです。
- Hyper-V
- KVM
- VirtualBox
- VMware
VMware に入れてみる
今回は自宅の ESXi 6.0 で検証します。(6.5 に上げたい……)
ダウンロードした ova ファイルをそのままインポートすると何故かエラーになってしまいます。
ova ファイルは tar 形式なので一度展開し、ovf + vmdk の2ファイルとして読み込ませると上手くいきました。
起動……
インポートが終わるとサクッと起動しました。
……が、ここからどうやってログインすればよいのか。
EC2 なら事前登録した SSH 鍵を使うところですが、今回はそれもありません。
誰もログインできない謎のサーバが完成してしまいました。
Cloud-Init
リポジトリをもう一度眺めてみると、README.cloud-init なるファイルに説明があります。
初耳なので調べたところ、クラウドインスタンスの初期化に使われる Cloud-Init
と呼ばれるパッケージがあるようです。
Cloud config examples – Cloud-Init 17.2 documentation
サーバ起動時にホスト名変更・ユーザ作成などを実行でき、本家の EC2 でも活用されています。
Cloud-Init 準備
と言うことで、Cloud-Init でログイン用のユーザ設定を投入します。まずは、YAML 形式でファイルを2つ作成。
meta-data ファイル
local-hostname: amznlinux2
ホスト名を指定しているだけです。
user-data ファイル
#cloud-config
users:
- name: yuu26
sudo: ALL=(ALL) NOPASSWD:ALL
plain_text_passwd: hogefuga
lock_passwd: false
ログイン用ユーザを作成。検証用なのでパスワード認証かつ平文で書いていますが、もちろん鍵認証にも対応しています。
1行目はコメントだろうと思って省いたら動きませんでした。宣言の意味を持っているため、消してはいけません。
seed.iso 作成
用意した meta-data
, user-data
を iso イメージに格納します。
$ genisoimage -output seed.iso -volid cidata -joliet user-data meta-data
Bash on Windows で作業していましたが、コマンドがないため sudo apt-get install genisoimage
で事前にインストールを行いました。
-volid cidata
はボリュームラベルの指定です。-joliet
は CD-ROM の論理フォーマット指定で、これがないと8文字を超えるファイル名が格納できません。
起動リベンジ
ESXi のデータストアに seed.iso
をアップロードしておきます。
Amazon Linux の仮想マシン設定からマウントし、起動してみます。
起動中に error: no symbol table.
などと表示されますがそのまま待つと……
無事に起動・ログインできました! バージョンも 2.0 になっています。
$ uname -a
Linux amznlinux2.localdomain 4.9.62-10.57.amzn2.x86_64 #1 SMP Wed Dec 6 00:07:49 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2.0 (2017.12)"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2.0"
PRETTY_NAME="Amazon Linux 2.0 (2017.12) LTS Release Candidate"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2.0"
HOME_URL="https://amazonlinux.com/"
まとめ
- Amazon Linux 2 がリリースされました
- 仮想マシンイメージを使い、VMware 上に構築しました
- Cluod-Init で初期設定が必要です
- 課金を気にせず Amazon Linux で検証し放題!
VMware Player や VirtualBox、もちろんコンテナでも動きます。お試しあれ。