Edited at

Vagrantコマンドのチートシート

More than 1 year has passed since last update.


[概要]

Vagrantコマンドをちょくちょく忘れちゃうのでまとめます。

対象しているバージョン

- Vagrant 1.8.6


コマンド構文

記号
意味

{hoge}
必須パラメーターを囲みます

[fuga]
オプション・パラメーターを囲みます

|
2 つ以上の項目を区切り、その内1つだけを選択できることを示す

基本的には、下記のようにすればHelpが見れます。

# vagrant COMMAND -h

$ vagrant -h


[事前準備]

Vagrant環境は事前に構築しとおくこと。

OS XへのVagrant導入方法


[作業内容]


バージョン確認

$ vagrant --version

Vagrant 1.8.6

### --versionは省略できる
$ vagrant -v
Vagrant 1.7.4

### バージョン情報を確認するに加えて、最新版かどうかも確認してくれる
$ vagrant version
Installed Version: 1.8.6
Latest Version: 1.8.6

You're running an up-to-date version of Vagrant!


boxコマンド


box追加

### 構文 vagrant box add [options] <name, url, or path> <url>

$ vagrant box add ghfdjk/centos7
# Atlasからboxを持ってくると、name, urlは特に意識する必要はありません。
# nameは、box作成者が指定しているので、意識する必要はないです。

### URLからboxを追加
$ vagrant box add sample https://atlas.hashicorp.com/ghfdjk/boxes/centos7/versions/1.1/providers/virtualbox.box
# sampleというbox名(任意)とboxファイルのURLを指定する

### ローカルのboxファイルを追加
$ vagrant box add sample package.box
# package.boxというファイルが同一ディレクトリがある場合


box一覧表示

### 構文 vagrant box list [options]

$ vagrant box list [options]
bento/centos-6.7 (virtualbox, 2.2.2)
mackerel/centos66 (virtualbox, 0.0.2)
mackerel/centos7 (virtualbox, 0.0.1)


box削除

### 構文 vagrant box remove <name>

$ vagrant box remove mackerel/centos7
Removing box 'mackerel/centos7' (v0.0.1) with provider 'virtualbox'...


再パッケージ化

### 構文 vagrant box repackage <name> <provider> <version>

$ vagrant box repackage mackerel/centos66 virtualbox 0.0.2
# provide VirtualBoxを使用しているので指定する。
# バージョンが0.0.2なので指定する
# repackageすると、addした時点での状態をpackage.boxとして出力してくれる


vagrant初期化

### vagrant init [name [url]]

### name指定
$ vagrant init mackerel/centos66 # nameの部分は、ユーザ名/box名というような表記となっています。
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.

#### initをするとVagrantfileが生成されて、nameの部分が下記のようになって生成されます。
$ grep "mackerel/centos66" Vagrantfile
config.vm.box = "mackerel/centos66"

#### 引数のnameは[]のため省略は可能です。ですが省略すると「base」という名前生成されます。
$ grep "config.vm.box" Vagrantfile
config.vm.box = "base"


仮想マシン操作コマンド


仮想マシン起動

### 構文 vagrant up [options] [name]

$ vagrant up

### 複数起動している場合
$ vagrant up default
# Vagrantは仮想マシンを複数台起動することができるため1台だけ起動する場合は、仮想マシン名を指定する必要がある。上記は、「default」という仮想マシンだけ起動


仮想マシン停止

### 構文 vagrant halt [options] [name]

$ vagrant halt

### 複数台起動している場合
$ vagrant halt default
# Vagrantは仮想マシンを複数台起動することができるため1台だけ停止する場合は、仮想マシン名を指定する必要がある。上記は、「default」という仮想マシンだけ停止


仮想マシン再起動

### 構文 vagrant reload [vm-name]

$ vagrant reload
# reloadは、Vagrantfileを再読み込みが発生するため、変更をした場合は、reloadを実行する。

### 複数起動している場合
$ vagrant reload default
# Vagrantは仮想マシンを複数台起動することができるため1台だけ再起動する場合は、仮想マシン名を指定する必要がある。上記は、「default」という仮想マシンだけ再起動


仮想マシン廃棄

※vagrant box add 直ぐの状態に戻る

### 構文 vagrant destroy [options] [name]

$ vagrant destroy

$ vagrant destroy default
# Vagrantは仮想マシンを複数台起動することができるため1台だけ廃棄する場合は、仮想マシン名を指定する必要がある。上記は、「default」という仮想マシンだけ廃棄


仮想マシン状態確認

### 構文 vagrant status [name]

$ vagrant status
Current machine states:

default not created (virtualbox)


仮想マシンの状態確認(詳細)

vagrant statusはVMがある配下でしか使えないが、global-statusであればどこのディレクトリにいても確認可能

### 構文 vagrant status [id]

$ vagrant global-status
id name provider state directory
------------------------------------------------------------------------------------
30f884a server1 virtualbox running /Users/ghfdjk/Desktop/sabakan7-vagrant-a77e0e59c708

The above shows information about all known Vagrant environments
on this machine. This data is cached and may not be completely
up-to-date. To interact with any of the machines, you can go to
that directory and run Vagrant, or you can use the ID directly
with Vagrant commands from any directory. For example:
"vagrant destroy 1a2b3c4d"


SSH関連


仮想マシンへ接続

#### vagrant ssh [options] [name] 

$ vagrant ssh

$ vagrant ssh default
# Vagrantは仮想マシンを複数台起動している場合は、仮想マシン名を指定する必要がある。上記は、「default」という仮想マシンに接続している


接続情報表示

### 構文 vagrant ssh-config [options] [name]

$ vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/hogehoge/centos7/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
# vagrantにsshする際の必要な情報を表示します

### 接続を便利にするのために
$ vagrant ssh-config >> ~/.ssh/config
# 上記のコマンドでsshのconfigファイルに追記してくれる。そうすると下記の様に「ssh default」で接続ができるようになる
$ ssh default
[vagrant@localhost ~]$

### 今度追記予定        

connect
help
login
package
plugin
provision
push
rdp
resume
suspend


[事後確認・作業]

なし