Windowsでも
VagrantとChefで
Laravelのローカル環境を
(自分で)つくりたい!
Laravel Meetup Tokyo Vol.3
2014.04.05
Yuta Ohashi
2014.04.05
Yuta Ohashi
で、ハマった話・・・
すでGitHubとかにあるやつ使えばいいじゃ(ry
自分でやってみる!
という気持ちは大事!
すでGitHubとかにあるやつ使えばいいじゃ(ry
すでGitHubとかにあるやつ使えばいいじゃ(ry
自分でやってみる!
という気持ちは大事!
だと思う・・・
誰ですか?
・大橋 佑太(おおはし ゆうた)
・ @blue_goheimochi
・株式会社オウケイウェイヴ
・プログラマ
・Laravel、GitHub Flow、TDD、Travis CI、
アジャイル開発、カンバン、Vagrant、Chef・・・
などなどモダンっぽいことやりたい年頃
・ブログ:http://blue-goheimochi.hatenablog.com/
何ができましたか?
https://github.com/blue-goheimochi/laravel-vagrant-centos
一応開発環境を自分でつくるのはできた!
これができるまでに、
ハマったあれこれを5つ紹介します!
(5つ以上あった気もしますが・・・笑)
ハマったこと その1
Windowsだと
vagrant ssh できない。
ハマったこと その1
`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
Puttyかなんかの
SSHクライアントで
アクセスしましょう。
Windowsだと
vagrant ssh できない。
ハマったこと その1
ハマったこと その2
なんかSSHの
ポートが変わってる
・Vagrantfileに追記
config.vm.network :private_network, ip: "192.168.33.100"
Host: 192.168.33.100
Port: 2222
Username: vagrant
ハマったこと その2
先ほどの
Host: 127.0.0.1
Port: 2222
Username: vagrant
であれば接続できる
ハマったこと その2
ハマったこと その2
Host: 192.168.33.100
Port: 22
Username: vagrant
試しにポートを22にしてみると・・・
つ・・・つながった・・・
ハマったこと その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
なぜかというと・・・
(おまけで)
つまり、結論
ハマったこと その2 → こう解決!
なんかSSHの
ポートが変わってる
サーバーのIPでアクセスす
る場合はPortは22
(ポートが変わっているわけじゃない)
ハマったこと その3
Windowsだと
knife solo cook <host>
できない。
ハマったこと その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に対応していない。。
ハマったこと その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
ハマったこと その3
Windowsだと
knife solo cook <host>
できない。
Vagrantのprovision を
利用しましょう
ハマったこと その4
Chefでyum使うとデフォで
base repositoryからイン
ストールされる。
ハマったこと その4
Chefのレシピでリポジトリを明示的に指定すればOK。
package "php" do
action :install
options "--enablerepo=remi"
not_if "rpm -q php"
end
PHPのインストールでハマった。
remiリポジトリからPHP5.4インストールしたい。
remiリポジトリインストールして、PHPに関してはそちらを使うよ
うに設定書き換える。
sshでつないでやる分にはうまくいく。
ハマったこと その4
Chefでyum使うとデフォで
base repositoryからイン
ストールされる。
Chefのレシピで使うリポ
ジトリを指定しましょう。
ハマったこと その5
Vagrantの
config.vm.provision:shell
でcomposer installできない
ハマったこと その5
これだとcomposer installがうまくいかない。
もちろん、sshでログインしたうえだとうまくいく。
# composer install
config.vm.provision :shell, :inline => <<-EOS
cd /var/www/laravel.loc
composer install
EOS
ハマったこと その5
Vagrantの
config.vm.provision:shell
でcomposer installできない
CookBookのほうで何とかし
ましょう
ハマったこと まとめ
もっとベストな解決策が
あるかと思いますが、
その時はこっそり
教えて(プルリク)ください・・・笑
https://github.com/blue-goheimochi/laravel-vagrant-centos
今後は何したい?
・Chef レシピの追加
・TDD
・Travis CIとの連携
・ちゃんと何か
Laravel使って作る。
今後は何したい?
最後に・・・
ハマったらどうするか・・・?
1.Google先生に聞く
2.人に聞く
ハマったらどうするか・・・?
3.OKWaveで聞く(宣伝)
ハマったらどうするか・・・?
解決済!!
Laravelに関する
すべての質問が
ハマったらどうするか・・・?
総件数5件ですが・・・
ハマったらどうするか・・・?
解決済!!
Laravelに関する
すべての質問が
総件数5件ですが・・・
解決済!!
Laravelに関する
すべての質問が
てへぺろ(・
ハマったらどうするか・・・?
ご静聴ありがとうございました!

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