LoginSignup
10
10

More than 5 years have passed since last update.

vagrant-triggerを使ってVagrant+Chef環境で発生するsynced_folderの問題を解決した。

Posted at

Vagrant + Chefっていう組み合わせの環境を普段から使わせていただいているんですが、よくなんかよくわからないエラーが起きるようになったんですよね。アップデートのスクリプト通そうとすると通らないっていう。
前の記事の最後の方にも書いてたんですけどsynced_folderに原因がある感じ。
WordPressをVagrant環境にらくらくインストールする。 - VCCW

というか本当に悪の枢軸なんじゃないかってくらい毎日起きてたんですね。
いつも何かしらできるだろうとか思ってたんですけど、自分はぜんぜんVagrantにもChefにも明るくないのでお手上げかなって。

そんなぼくが救世主として見つけたのが
vagrant-trigger

Kobito.kmKbAY.png

原因?と解決策?

原因を探っていくうちに、GitHubのVagrantのISSUE #5199にたどり着きました。
Problem reloading Chef shared folders #5199

ざっくり内容を3行で書くと。

synced_folderのキャッシュの問題だわ
synced_folder消してくれ。
手動で毎回消すの面倒なやつはvagrant-trigger使ってくれ。

と解釈できる(超訳)

設定方法

vagrant-triggerのインストール

何はともあれここから。

vagrant plugin install vagrant-triggers

Vagrantfileにこれを書く。

Vagrant.configure("2") do |config|
  config.trigger.after [:reload, :halt], stdout: true do 
    `rm .vagrant/machines/default/virtualbox/synced_folders`
  end
end

Vagrantfileにこのコードを書く。ディレクトリ構成は各プロジェクトに合わせてくださいね。

これでvagrant haltvagrant reloadをトリガーにして、synced_folderを消してくれる。
いちいち自分の手で消さなくて済むのがうれしい。

自分はあんまりvagrant suspendしないから書いてないのですが、 トリガーに加えてもいいのかもしれない。

いま携わっているプロジェクトは微妙に構成が違うので、サンプルのコードに変更を加えて導入したのですが、実際に問題は発生しなくなり、かなり便利になりました。

vagrant-triggerってもしかしてかなり便利じゃない?

なんか超便利そうなんでこういう使い方あるよって教えてください。

よりよい方法ある?

なお、もっとよい解決策を知っている方いるなら随時募集してます。
教えてください!

余談

Vagrant+Ansibleでも似たようなことが発生すると、調べている途中で見た気がしますが、きちんとしたことは知りませんー。
あと余談ですけど、最初はvagrant-triggerでVagrant+Chef環境をもっと快適にとかそういうタイトルにしようと思ったけど、完全に釣りになるからやめました。

前記事
ラクしてLAMPとかの環境を用意したい人のためのScotch Box

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