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

  • 71
    いいね
  • 0
    コメント

[概要]

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 share
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            

[事後確認・作業]

なし