最近vagrantを使ってみてるのだけど、いくつか使ったコマンドがあったので、メモがてらブログに書いてみる。
vagrant init
vagrant initでそのディレクトリにおけるvagrantを設定できる。具体的に言うとそのディレクトリ以下にVagrantfileというものが出来る。例えば以下のように使う。
$ vagrant init
vagrant box
vagrant boxはどこかのURLにあるboxファイルを名前付きで手元に持ってくるもの。vagrant box addつかえば持ってこれるし、vagrant box listを使えば手元に何があるか分かる。あとはremoveとかrepackageとかある。
boxをlocalに持ってきておけばいろいろなprojectで毎回boxファイルをdownloadせずに同じ物を使うことが出来るので便利。
$ vagrant box add precise32 http://files.vagrantup.com/precise32.box $ vagrant box list precise32
またvagrant initでもboxをlocalに作ってVagrantfileを作ることが出来るように見える(試してない)。
$ vagrant init precise32 http://files.vagrantup.com/precise32.box
vagrant up
Vagrantfileが作られたディレクトリではvagrant upを実行することでVMを立ち上げることが出来る。
$ vagrant up [default] VM already created. Booting if it's not already running... [default] Clearing any previously set forwarded ports... [default] Forwarding ports... [default] -- 22 => 2222 (adapter 1) [default] Creating shared folders metadata... [default] Clearing any previously set network interfaces... [default] Booting VM... [default] Waiting for VM to boot. This can take a few minutes. [default] VM booted and ready for use! [default] Mounting shared folders... [default] -- v-root: /vagrant
vagrant upの実行が終わらない場合はvagrant upの実行が終わらない話 - $shibayu36->blog;を参考にどうぞ。
vagrant suspend, halt, destroy
VMを止めるにはsuspend, halt, destroyが使える。
suspendはいわゆるsleepっぽい感じがする。shutdownはhaltでよさそう。完全にVMを無くしてデータを消したい場合はdestroyを使えば良い。
$ vagrant suspend
$ vagrant halt
$ vagrant destroy
ちなみにchefとかで最初からセットアップできるか試したいとか言う時は
$ vagrant up $ knife solo cook local.prepan.org -c config/knife.rb # 後述のvagrant ssh-configで.ssh/configに設定をしておかないといけない $ vagrant destroy
のようにvagrant upしてchef soloで実行して、失敗したらvagrant destroyで全て破棄するみたいなの繰り返すといい感じにセットアップのテストが出来る。
vagrant ssh-config
vagrant sshではそのディレクトリに入らないとsshできないし、chefとかで試したいときにはvagrant sshを使えないので、普通にsshで入りたいみたいなときにはvagrant ssh-configを使って.ssh/configを設定すると良い。
$ vagrant ssh-config --host local.prepan.org Host local.prepan.org HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile "/Users/shibayu36/.vagrant.d/insecure_private_key" IdentitiesOnly yes
これを.ssh/configに設定しておけば先述した、knife solo cook local.prepan.org -c config/knife.rb とかも出来るようになる。便利。