ProxmoxVEでAmazonLinuxを構築する

## 概要
以下の記事を参考にAmazon Linuxを構築したが、もう少し簡単な方法を見つけた。その方法についてまとめる
https://qiita.com/tukiyo3/items/0ec795da4c3f7907d858

## STEP1 ストレージの作成
AmazonからKVM用のイメージを入手する必要がある。作業しやすいように「ストレージ」を用意する。まずホスト側で作業用のディレクトリを作成

```bash
root@kiyoura:~# pwd
/root
root@kiyoura:~# mkdir aws-image
root@kiyoura:~# cd aws-image
```

作成したディレクトリにAmazonLinux2のイメージを公式サイトからダウンロードする
最新のURLは https://cdn.amazonlinux.com/os-images/latest/kvm/ を参照

```bash
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
```

作成したディレクトリを「ストレージ」として登録する。
「データセンター」-「ストレージ」-「ディレクトリ」を選択
![step1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/c1ad88f7-cae2-caa9-1199-3818d9955498.png)

IDにストレージ名「aws-image」、ディレクトリに「/root/aws-image」を入力
![step2a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/089e2795-36de-bd4f-5d57-37cbf0136330.png)

## STEP2 VMの作成

VMを作成。「名前」の欄を記入
![スクリーンショット 2020-04-11 16.35.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/bb5f9cfe-d618-a5a2-b14a-70b42925d45c.png)

OSで「ISOを使用する」から「CD/DVD物理ドライブを使用する」に変更。seed.isoが不要ということ。
![スクリーンショット 2020-04-11 16.36.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/b0866c71-5fd0-f7e4-85aa-64a2a11aa939.png)

システムではグラフィックカードを「VMWare互換」にする。noVNCでの画面表示に不具合が少ない。QEMUエージェントにチェック。
![スクリーンショット 2020-04-15 11.14.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/a9894a48-090d-b291-9235-3d97d150d499.png)

「ハードディスク」では「ストレージ」が「aws-image」になるように。ディスクサイズは1GBにしてあとで拡張したほうが実際のイメージサイズと整合性が取れていいと思う。
![スクリーンショット 2020-04-15 11.50.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/05874c04-cf01-786c-f332-cc4a167a0834.png)

CPUは種別を「host」にするのがおすすめ。ホストマシンのCPU命令がすべて使えるのでパフォーマンス的に有利なはず。
![スクリーンショット 2020-04-15 11.51.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/28f21c93-dd34-2fc9-f6d6-75af4e293895.png)

あとは全て「次へ」を押す。
![スクリーンショット 2020-04-11 16.38.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/a62f7f91-c540-ddea-5354-841933c8e47e.png)

デフォルトのハードディスクファイルができるので、AWSからダウンロードしたファイルとすり替える。「110」と書いてある箇所はマシン番号(vmid)なので、作成したものに合わせて読み替えるように。

```bash
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デバイス
![スクリーンショット 2020-04-11 16.47.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/8313fae3-abc6-23a6-4f00-2dc11264677e.png)

追加後にユーザーとパスワードを設定する。これで起動後にログインする。ネットワークはそのまま。「Regenerate Image」をクリック。(ネットワークでIPの設定を入力できるが、反映されずDHCPで動作する)

![スクリーンショット 2020-04-11 18.06.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/aa67e15a-9636-493f-05cb-9846d0f47e11.png)

もうひとつはRNG。設定はデフォルトでよい。追加しないとRNGがありませんのような起動ログが出力されるため。
![スクリーンショット 2020-04-11 18.12.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/e06ffaf3-3750-343b-addc-30eadb4f54b3.png)

最後にシリアルポート。これを追加するとコンソールがnoVNCからxterm.jsになるのでコピペが楽になる。
![スクリーンショット 2020-04-15 11.53.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/4c69754b-a816-17d8-0707-8d24c60344d4.png)

ハードディスクのサイズを実際のAWSから落としたものと一致させる
Before
![スクリーンショット 2020-04-15 12.13.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/395d6517-4e91-d24f-c1c3-3d6c46d48eea.png)
1GBだけ増やすと
![スクリーンショット 2020-04-15 12.19.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/d7782d8d-90a0-45e0-5050-c0f62b693640.png)
26GBになる
![スクリーンショット 2020-04-15 12.19.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/96f762e3-6090-2bb0-d3f1-4c7ec5fa62ce.png)

起動するとこの画面で止まる。
![スクリーンショット 2020-04-15 11.54.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/b8f6e152-162f-78ae-3a9d-64b363a996f7.png)

Cloud-Initで設定したユーザーでログイン
![スクリーンショット 2020-04-15 11.54.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/afaaf714-03f6-3673-23fb-e02c15a31ef9.png)

## STEP4 AmazonLinuxの基本設定

```bash
# 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
```

SSHで入れる
![スクリーンショット 2020-04-15 12.23.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/67fc7420-0ed0-9340-721e-a094f956b534.png)
## おまけ
作成したVMをテンプレートに変換すると、AmazonLinuxが容易に量産できる。ターゲットストレージを明示してあげないとクローン時にエラーが出るので注意。
![スクリーンショット 2020-04-11 18.34.26のコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65278/829617cd-fff8-2e2f-f1e3-d5818ef1823b.png)