[概要]
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
[事後確認・作業]
なし