note

vagrant

vagrantとは

仮想マシンの簡単な構築や、どこでも同じ環境を再現できるように仮想マシンを管理するためのコマンドラインツール

メリット

簡単に仮想マシンを構築できる

さらに構成管理ツール(Chef, Ansible)を使って以下のメリットを受けられる

Vagrantfileに構成管理ツールを実行するように指定できるので、どこでも同じ仮想マシンを再現できる

用語

Boxファイル

仮想マシン起動時のテンプレートとなるイメージファイル(isoファイルとは異なる)

自前でBoxファイルを作ることもできる(packerなど)

Vagrantfile

仮想マシンの構成を記述するファイル

主に以下の項目を指定する

プロバイダ

仮想化ソフト(仮想環境)のこと

デフォルトではVirtualBoxをサポートしている

プラグインをインストールすれば他の仮想環境(AWSとか)へも適応可能

プロビジョニング

ミドルウェアのインストールや設定を行うツール ここではシェルスクリプトや、構成管理ツール(Chef、Puppet、Ansibleなど)のことを指す Vagrantfile内で指定する

プラグイン

vagrant plugin installであとから機能を追加できる

簡単な手順

box追加

https://app.vagrantup.com/boxes/searchでインストールするBoxを検索

vagrant.cloud

検索したBoxを追加する

$ vagrant box add [name] [url or path]

例 (bento系はChef社が提供しているやつ 安心して使って!)

$ vagrant box add bento/ubuntu-18.04

box一覧を確認

$ vagrant box list

bento/centos-6.8   (virtualbox, 2.3.4)
bento/centos-7.3   (virtualbox, 201708.22.0)
bento/ubuntu-18.04 (virtualbox, 201808.24.0)
centos64           (virtualbox, 0)
centos70           (virtualbox, 0)
ubuntu16           (virtualbox, 0)

vagrantの初期化

Boxを使ってVagrantfileを作成する

$ vagrant init [box名:なくてもいい]

カレントディレクトリにVagrantfileができる

$ tree

./
	`--- Vagrantfile

$ vagrant init bento/ubuntu-18.04

A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

Vagrantfileの編集

あとで詳しく

仮想マシン起動

Vagrantfileのあるディレクトリで、以下のコマンドを実行するとVagrantが起動する

Vagrant起動=VirtualBoxの仮想マシン起動

$ vagrant up

仮想マシンの状態を確認

Vagrantの起動状態を以下のコマンドで確認できる

$ vagrant status

起動している場合

default		running (virtualbox)

停止している場合

default		poweroff (virtualbox)

仮想マシンにsshログイン

sshログインできる

$ vagrant ssh

user:vagrant, pass:vagrant

user:root, pass:vagrant

仮想マシン停止(vagrant halt)

haltで停止できる

$ vagrant halt

ローカルに作成されるファイルの場所

vagrant系

c:/Users/[ユーザー名]/.vagrant.d/boxes/

virtualbox系

c:/Users/[ユーザー名]/VirtualBox VMs/

自前でboxを用意する方法

packerを使用する

packer hashicopeが提供しているツール

手順

まだやりかたわかってない

refs