LoginSignup
13
16

More than 5 years have passed since last update.

Amazon Linux 2 LTSの綺麗なVagrant boxを作ってみた(2.0.20180622.1)

Posted at

はじめに

Amazon Linux 2 LTSの正式版が出たので改めて手順を整理。
また、いままではVirtual boxのGuest Additionsをインストールしていたが、Virtual boxのバージョンアップでBoxが起動しなくなることがあったので、今回よりインストールしないことにした。入れたい人は別途入れてください。

大まかな手順
1. Amazon Linux 2のダウンロード
2. cloud init用データの作成
3. VMの作成とAmazon Linux 2の起動
4. クリーンアップと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 ~]$ 
13
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
16