LoginSignup
22
30

More than 5 years have passed since last update.

vagrantコマンドまとめ

Last updated at Posted at 2014-12-18

色んなところに情報散らばるので、vagrantの基本コマンドをまとめてみた。

基本コマンド(起動停止等)

起動前の準備

vagrantはVagrantfileを読み込んで起動するので、boxイメージを指定してinitすることでVagrantファイルを事前に作る

$ cd [vagrantのホームディレクトリにしたいディレクトリ]
$ vagrant init [box名]
$ ls
Vagrantfile

起動

※ --provisonでプロビジョニングも実施

$ vagrant up

停止

$ vagrant halt

削除

$ vagrant destroy

再読込

※ --provisonでプロビジョニングも実施

$ vagrant reload

プロビジョンだけ実施

reloadは仮想マシンの再起動が入り時間がかかるので、ChefやShell Scriptでプロビジョン書いている場合に、設定変更反映したい時とか良く使う

$ vagrant provision

box関連

box追加

$ vagrant box add [box名] [boxの場所](実ディレクトリでもURLでも可)

box追加

$ vagrant box remove [box名] 

box一覧の表示(現在登録されているbox一覧が表示される)

$ vagrant box list
cent65      (virtualbox, 0)
cent65-2    (virtualbox, 0)

オリジナルのbox(パッケージ)を作成

自分の作り上げた環境をboxイメージとして他に展開したい時に使う
ここで作ったboxを他環境にコピーし、box追加手順で追加すれば利用可

$ vagrant package --output test.box
==> Attempting graceful shutdown of VM...
==> Clearing any previously set forwarded ports...
==>Exporting VM...
==> Compressing package to: /opt/Vagrant/cent65-base/test.box

その他

vagrantホームディレクトリからのssh接続

$ vagrant ssh

通常のsshで接続

vagrant sshはホームディレクトリからしか使えないので、他の場所からでも通常の環境の様にsshしたい時は下記実施
knife soloとか外部からつつきたい用途は結構あると思うので良く使う。

$ vagrant ssh-config >> ~/.ssh/config

$ cat ~/.ssh/config
Host mweb
   HostName 127.0.0.1
   User vagrant
   Port 2222
   UserKnownHostsFile /dev/null
   StrictHostKeyChecking no
   PasswordAuthentication no
   IdentityFile /Users/xxx/.vagrant.d/insecure_private_key
   IdentitiesOnly yes
   LogLevel FATAL

$ ssh mweb
繋がるー

#自分の場合は、ホスト名ではなくipで繋げたいので下記のように、ホストをipにしてssh出来るようにしている
$ sed -i -e 's/mweb/192.168.50.*/g' ~/.ssh/config

$ cat ~/.ssh/config
Host 192.168.50.*
   HostName 127.0.0.1
   User vagrant
   Port 2222
   UserKnownHostsFile /dev/null
   StrictHostKeyChecking no
   PasswordAuthentication no
   IdentityFile /Users/xxx/.vagrant.d/insecure_private_key
   IdentitiesOnly yes
   LogLevel FATAL

$ssh 192.168.50.20
繋がるー

同じboxイメージで複数台のマシンを起動

Vagtanfileに書きの様に記載することで同じイメージで複数起動を実現出来る

  config.vm.define :mweb do | mweb |
   l mweb.vm.hostname = "mweb"
    mweb.vm.network :private_network, ip:"192.168.50.20"
  end
  config.vm.define :mweb2 do | mweb2 |
    mweb2.vm.hostname = "mweb2"
    mweb2.vm.network :private_network, ip: "192.168.50.21"
  end

※vagrant sshでは繋がらないので、引数にホスト名をつける
upやreloadの時もホスト名指定必要で、ない場合は両方に同じコマンドが通る

vagrant ssh [host名]
22
30
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
22
30