WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!

3,867 views

Published on

2014年4月5日に開催されたLaravel Meetup Tokyo Vol.3で発表させていただいた資料です。

Published in: Engineering
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,867
On SlideShare
0
From Embeds
0
Number of Embeds
1,567
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!

  1. 1. Windowsでも VagrantとChefで Laravelのローカル環境を (自分で)つくりたい! Laravel Meetup Tokyo Vol.3 2014.04.05 Yuta Ohashi
  2. 2. 2014.04.05 Yuta Ohashi で、ハマった話・・・
  3. 3. すでGitHubとかにあるやつ使えばいいじゃ(ry
  4. 4. 自分でやってみる! という気持ちは大事! すでGitHubとかにあるやつ使えばいいじゃ(ry
  5. 5. すでGitHubとかにあるやつ使えばいいじゃ(ry 自分でやってみる! という気持ちは大事! だと思う・・・
  6. 6. 誰ですか? ・大橋 佑太(おおはし ゆうた) ・ @blue_goheimochi ・株式会社オウケイウェイヴ ・プログラマ ・Laravel、GitHub Flow、TDD、Travis CI、 アジャイル開発、カンバン、Vagrant、Chef・・・ などなどモダンっぽいことやりたい年頃 ・ブログ:http://blue-goheimochi.hatenablog.com/
  7. 7. 何ができましたか? https://github.com/blue-goheimochi/laravel-vagrant-centos 一応開発環境を自分でつくるのはできた! これができるまでに、 ハマったあれこれを5つ紹介します! (5つ以上あった気もしますが・・・笑)
  8. 8. ハマったこと その1 Windowsだと vagrant ssh できない。
  9. 9. ハマったこと その1
  10. 10. `ssh` executable not found in any directories in the %PATH% variable. Is an SSH client installed? Try installing Cygwin, MinGW or Git, all of which contain an SSH client. Or use the PuTTY SSH client with the following authentication information shown below: Host: 127.0.0.1 Port: 2222 Username: vagrant ハマったこと その1
  11. 11. Puttyかなんかの SSHクライアントで アクセスしましょう。 Windowsだと vagrant ssh できない。 ハマったこと その1
  12. 12. ハマったこと その2 なんかSSHの ポートが変わってる
  13. 13. ・Vagrantfileに追記 config.vm.network :private_network, ip: "192.168.33.100" Host: 192.168.33.100 Port: 2222 Username: vagrant ハマったこと その2
  14. 14. 先ほどの Host: 127.0.0.1 Port: 2222 Username: vagrant であれば接続できる ハマったこと その2
  15. 15. ハマったこと その2 Host: 192.168.33.100 Port: 22 Username: vagrant 試しにポートを22にしてみると・・・ つ・・・つながった・・・
  16. 16. ハマったこと その2 のいずれかでアクセスできます。 この情報はあくまで、ローカル・ループバック・アドレスを指定した 場合の設定で、上記設定でアクセスするとポートフォワードして vagrantで立ち上げたサーバーにアクセスすることができるように なっています。(あくまでホストのCentOSのSSHのポートは22) Host: 127.0.0.1 Port: 2222 Username: vagrant Host: 192.168.33.100 Port: 22 Username: vagrant Host: localhost Port: 2222 Username: vagrant なぜかというと・・・ (おまけで) つまり、結論
  17. 17. ハマったこと その2 → こう解決! なんかSSHの ポートが変わってる サーバーのIPでアクセスす る場合はPortは22 (ポートが変わっているわけじゃない)
  18. 18. ハマったこと その3 Windowsだと knife solo cook <host> できない。
  19. 19. ハマったこと その3 C:¥Users¥Yuta Ohashi¥Desktop¥laravel>knife solo cook vagrant@192.168.33.100 Running Chef on 192.168.33.100... Checking Chef version... Enter the password for vagrant@192.168.33.100: Uploading the kitchen... ERROR: RuntimeError: Failed to launch command ["rsync", "-rL", "-- chmod=ugo=rwX", "--rsh=ssh vagrant@192.168.33.100", "--delete", "-- exclude =revision-deploys", "--exclude=tmp", "--exclude=.git", "--exclude=.hg", "-- exclude=.svn", "--exclude=.bzr", "/cygdrive/C/opscode/chef/embedd ed/lib/ruby/gems/1.9.1/gems/knife-solo-0.4.1/lib/knife- solo/resources/patch_cookbooks/", ":~/chef-solo/cookbooks-1"] rsyncに対応していない。。
  20. 20. ハマったこと その3 これをすることで共有フォルダにおかれているCookBookを Hostサーバ上で実行できます。 ・Vagrantfileに追記 # Install chef config.vm.provision :shell, :inline => "curl -L 'http://www.opscode.com/chef/install.sh' | sudo bash" # provisioning with chef solo. config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "./chef/cookbooks“ chef.data_bags_path = "./chef/data_bags“ chef.add_recipe "httpd“ end
  21. 21. ハマったこと その3 Windowsだと knife solo cook <host> できない。 Vagrantのprovision を 利用しましょう
  22. 22. ハマったこと その4 Chefでyum使うとデフォで base repositoryからイン ストールされる。
  23. 23. ハマったこと その4 Chefのレシピでリポジトリを明示的に指定すればOK。 package "php" do action :install options "--enablerepo=remi" not_if "rpm -q php" end PHPのインストールでハマった。 remiリポジトリからPHP5.4インストールしたい。 remiリポジトリインストールして、PHPに関してはそちらを使うよ うに設定書き換える。 sshでつないでやる分にはうまくいく。
  24. 24. ハマったこと その4 Chefでyum使うとデフォで base repositoryからイン ストールされる。 Chefのレシピで使うリポ ジトリを指定しましょう。
  25. 25. ハマったこと その5 Vagrantの config.vm.provision:shell でcomposer installできない
  26. 26. ハマったこと その5 これだとcomposer installがうまくいかない。 もちろん、sshでログインしたうえだとうまくいく。 # composer install config.vm.provision :shell, :inline => <<-EOS cd /var/www/laravel.loc composer install EOS
  27. 27. ハマったこと その5 Vagrantの config.vm.provision:shell でcomposer installできない CookBookのほうで何とかし ましょう
  28. 28. ハマったこと まとめ もっとベストな解決策が あるかと思いますが、 その時はこっそり 教えて(プルリク)ください・・・笑 https://github.com/blue-goheimochi/laravel-vagrant-centos
  29. 29. 今後は何したい? ・Chef レシピの追加 ・TDD ・Travis CIとの連携 ・ちゃんと何か Laravel使って作る。
  30. 30. 今後は何したい?
  31. 31. 最後に・・・
  32. 32. ハマったらどうするか・・・? 1.Google先生に聞く 2.人に聞く
  33. 33. ハマったらどうするか・・・? 3.OKWaveで聞く(宣伝)
  34. 34. ハマったらどうするか・・・?
  35. 35. 解決済!! Laravelに関する すべての質問が ハマったらどうするか・・・?
  36. 36. 総件数5件ですが・・・ ハマったらどうするか・・・? 解決済!! Laravelに関する すべての質問が
  37. 37. 総件数5件ですが・・・ 解決済!! Laravelに関する すべての質問が てへぺろ(・ ハマったらどうするか・・・?
  38. 38. ご静聴ありがとうございました!

×