概要
以下の記事を参考にAmazon Linuxを構築したが、もう少し簡単な方法を見つけた。その方法についてまとめる
https://qiita.com/tukiyo3/items/0ec795da4c3f7907d858
STEP1 ストレージの作成
AmazonからKVM用のイメージを入手する必要がある。作業しやすいように「ストレージ」を用意する。まずホスト側で作業用のディレクトリを作成
root@kiyoura:~# pwd
/root
root@kiyoura:~# mkdir aws-image
root@kiyoura:~# cd aws-image
作成したディレクトリにAmazonLinux2のイメージを公式サイトからダウンロードする
最新のURLは https://cdn.amazonlinux.com/os-images/latest/kvm/ を参照
root@kiyoura:~/aws-image# wget https://cdn.amazonlinux.com/os-images/2.0.20200304.0/kvm/amzn2-kvm-2.0.20200304.0-x86_64.xfs.gpt.qcow2
作成したディレクトリを「ストレージ」として登録する。
「データセンター」-「ストレージ」-「ディレクトリ」を選択
IDにストレージ名「aws-image」、ディレクトリに「/root/aws-image」を入力
STEP2 VMの作成
OSで「ISOを使用する」から「CD/DVD物理ドライブを使用する」に変更。seed.isoが不要ということ。
システムではグラフィックカードを「VMWare互換」にする。noVNCでの画面表示に不具合が少ない。QEMUエージェントにチェック。
「ハードディスク」では「ストレージ」が「aws-image」になるように。ディスクサイズは1GBにしてあとで拡張したほうが実際のイメージサイズと整合性が取れていいと思う。
CPUは種別を「host」にするのがおすすめ。ホストマシンのCPU命令がすべて使えるのでパフォーマンス的に有利なはず。
デフォルトのハードディスクファイルができるので、AWSからダウンロードしたファイルとすり替える。「110」と書いてある箇所はマシン番号(vmid)なので、作成したものに合わせて読み替えるように。
root@kiyoura:~/aws-image# cp -a amzn2-kvm-2.0.20200304.0-x86_64.xfs.gpt.qcow2 images/110/vm-110-disk-0.qcow2
STEP3 VMのカスタマイズ
3つのデバイスを追加する。ひとつはCloudInitデバイス
追加後にユーザーとパスワードを設定する。これで起動後にログインする。ネットワークはそのまま。「Regenerate Image」をクリック。(ネットワークでIPの設定を入力できるが、反映されずDHCPで動作する)
もうひとつはRNG。設定はデフォルトでよい。追加しないとRNGがありませんのような起動ログが出力されるため。
最後にシリアルポート。これを追加するとコンソールがnoVNCからxterm.jsになるのでコピペが楽になる。
ハードディスクのサイズを実際のAWSから落としたものと一致させる
Before
1GBだけ増やすと
26GBになる
STEP4 AmazonLinuxの基本設定
# ProxmoxVEの管理画面からIPを見たり、シャットダウンできるようにする
$ sudo yum install qemu-guest-agent
# キーボードがUSなのでJISにする
$ sudo localectl set-keymap jp106
# タイムゾーンを日本時間に
$ sudo timedatectl set-timezone Asia/Tokyo
# 文字コード
$ sudo localectl set-locale LANG=ja_JP.UTF-8
# SSHでパスワードログインできるようにする
$ sudo sed -i -e "s/PasswordAuthentication no/PasswordAuthentication yes/" /etc/ssh/sshd_config
$ sudo systemctl restart sshd
$ sudo shutdown now
おまけ
作成したVMをテンプレートに変換すると、AmazonLinuxが容易に量産できる。ターゲットストレージを明示してあげないとクローン時にエラーが出るので注意。