はじめに
Amazon Linux 2 LTSの正式版が出たので改めて手順を整理。
また、いままではVirtual boxのGuest Additionsをインストールしていたが、Virtual boxのバージョンアップでBoxが起動しなくなることがあったので、今回よりインストールしないことにした。入れたい人は別途入れてください。
大まかな手順
- Amazon Linux 2のダウンロード
- cloud init用データの作成
- VMの作成とAmazon Linux 2の起動
- クリーンアップとboxの作成
Amazon Linux 2の公式は次のURL
2018年7月26日時点のVirtualBoxイメージは次のものが最新
さぁ、はじめよう。
準備
VirtualBoxイメージのダウンロード
curl -LO https://cdn.amazonlinux.com/os-images/2.0.20180622.1/virtualbox/amzn2-virtualbox-2.0.20180622.1-x86_64.xfs.gpt.vdi
cloud init用データの作成
ここが一つ目のハマリポイントだった。ボリュームラベルをcidata
にしないとAmazon Linux 2 LTSイメージの初回起動時に認識できないので注意。
mkdir seed
echo "local-hostname: localhost.localdomain" > seed/meta-data
cat << __EOF__ > seed/user-data
#cloud-config
# vim:syntax=yaml
users:
# A user by the name ec2-user is created in the image by default.
- default
- name: vagrant
groups: wheel
sudo: ['ALL=(ALL) NOPASSWD:ALL']
plain_text_passwd: vagrant
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
lock_passwd: false
chpasswd:
list:
root:vagrant
expire: False
__EOF__
# ISOイメージの作成
hdiutil makehybrid -iso -joliet -o seed.iso seed -joliet-volume-name cidata
VMの起動
コマンドラインで実行する。
# VMの作成とAmazon Linux 2の起動
VM=vagrant-amznlinux2
VDI=amzn2-virtualbox-2.0.20180622.1-x86_64.xfs.gpt.vdi
VBoxManage createvm --name "$VM" --ostype "RedHat_64" --register
VBoxManage storagectl "$VM" --name "SATA Controller" --add "sata" --controller "IntelAHCI"
VBoxManage storagectl "$VM" --name "IDE Controller" --add "ide"
VBoxManage storageattach "$VM" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium $VDI
VBoxManage storageattach "$VM" --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium seed.iso
VBoxManage modifyvm "$VM" --natpf1 "ssh,tcp,127.0.0.1,2222,,22" --memory 1024 --vram 8 --audio none --usb off
VBoxManage startvm "$VM" --type headless
VMにログイン
# Vagrant insecure private keyのダウンロード
curl -sL https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant -o vagrant.pem
chmod 600 vagrant.pem
# ログイン
ssh -p 2222 vagrant@localhost -i vagrant.pem
クリーンアップ
ボックス化した時にサイズを小さくするための作業
# クリーンアップ
sudo rm -rf /var/cache/yum
sudo dd if=/dev/zero of=/0 bs=4k
sudo rm -f /0
history -c
# シャットダウン
sudo shutdown -h now
Vagrant boxの作成と登録
vagrant package --base "$VM"
vagrant box add --name "amzn2-2.0.20180622.1-x86_64" package.box
お試し起動
mkdir amznlinux2
cd amznlinux2
vagrant init amzn2-2.0.20180622.1-x86_64
vagrant up
お試しログイン
$ vagrant ssh
Last login: Wed Jul 25 08:59:18 2018 from gateway
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[vagrant@localhost ~]$