読者です 読者をやめる 読者になる 読者になる

相当どうでも良い Vagrant の小技

Vagrant

Vagrantfile の中で gem を require する

そんなことすんならプラグイン書けや!ってミッチェル先生の声が聞こえてきそうですが、できます、てか、そもそも Vagrantプラグインってあれただの gem なんで

$ vagrant plugin install httparty

で入れて、普通に Vagrantfile 中で require するが良いです。

コマンドにオプション渡したい

特に up なんかすごくオプション渡したくないですか?。要するに、コマンドの実行時に何か値をセットして Vagrantfile で受け取りたいって話です。

1. 環境変数を使う
$ VAGRANT_NETWORK=private_network vagrant up

と実行して

config.vm.network ENV['DG_VM_NETWORK']

とかです。 vm.network 他にも設定することあるので、これはあくまで例ですが。簡単っす。でも僕なんかこのコマンドの前に事実上のオプションがある形どうも馴染めないんですよね…。

2. 引数で渡した後、削る

http://stackoverflow.com/questions/14124234/how-to-pass-parameter-on-vagrant-up-and-have-it-in-the-scope-of-chef-cookbook#answer-20037083
こういう奴、これ出来ると理想的では無いけど手軽ではあったんですが、

https://github.com/mitchellh/vagrant/commit/3219be3d5111afc0ad5f48b5a6f046c76ce7d9fd
去年のこの差分でできなくなりました。

3. プラグイン書く
$ vagrant oogattaup --network=private

とかやれるようにする。した。これは簡単で効果大だったんですが、未だ Vagrantfile どう書くか模索中です。プラグインが入ってないと動かない Vagrantfile もださいなあとか…。でもそんなこと模索してる時間あんまり無いのでほったらかしになりそうだけど今度あらためて書きます。

なんか書いてたら思ったより長くなりそうなので続きまた書きます。