Mavericksにしたらvagrantやrailsが起動しなくなったので入れなおしたです。
特にportの所は数日ハマったつД`)・゚・。・゚゚・:.。..。.:・゚
Mavericksにしたらプリインスコされてるアパッチのhttpd.confが書き換わっていたり「!?」な事が続いています。
ファンもぶんぶん回るようになりました。
virtual box再インスコ
とりあえず、virtual boxは再インスコ。これで、毎回vagrant upで出るエラーは直るです。
下記、エラー内容
There was an error while executing `VBoxManage`, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below. Command: ["hostonlyif", "create"] Stderr: 0%... Progress state: NS_ERROR_FAILURE VBoxManage: error: Failed to create the host-only adapter VBoxManage: error: VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component HostNetworkInterface, interface IHostNetworkInterface
virtual box4.3.2インスコ(vagrant1.3.4以下は動かない)
vagrant1.3.5インスコ
mkdir arround_jp
cd arround_jp
vagrant init centos64
vagrant up
vagrant ssh
ひとまず、エラーなくssh接続できた
gemパッケージ入れる
su
vagrant
yum -y install gcc openssl-devel make git
//sudoコマンドだと/rootにインストールされるとかあるらしいのでroot権限でやる
ruby2.0インスコ
cd /usr/local
git clone git://github.com/sstephenson/rbenv.git rbenv
mkdir rbenv/shims rbenv/versions
groupadd rbenv
chgrp -R rbenv rbenv
chmod -R g+rwxXs rbenv
git clone git://github.com/sstephenson/ruby-build.git ruby-build
cd ruby-build
./install.sh
vi /etc/profile.d/rbenv.sh
下記を記述
export RBENV_ROOT=”/usr/local/rbenv”
export PATH=”/usr/local/rbenv/bin:$PATH”
eval “$(rbenv init -)”
gem i bundler
exit
exit
vagrant reload
vagrant ssh
su
vagrant
rbenv install -l
rbenv install 2.0.0-p247
rbenv global 2.0.0-p247
rbenv rehash
ruby -v
無事、ruby2.0.0-p247が入った事を確認
railsインスコが早くなるおまじない
vi /etc/resolve.conf
下記を追加
options single-request-reopen
vi ~/.gemrc
gem: –no-ri –no-rdoc
rubygemsアップデート
gem update --system
rbenv rehash
update_rubygems
railsインスコ
gem i sdoc
gem i json
gem i sqlite3
rbenv rehash
gem i rails
rbenv rehash
rails -v
※root権限から戻る
exit
rails new arround_jp –skip-bundle
cd arround_jp
vi Gemfile
コメントアウトする
#gem ‘turbolinks’のとこ
コメントアウト外す
therubyracerのとこ
vi app/views/layouts/application.html.erb
< %= stylesheet_link_tag “application”, media: “all” %>
< %= javascript_include_tag “application” %>
vi app/assets/javascripts/application.js
一行削除//= require turbolinks
bundle install
rails s
http://localhost:3000とか http://0.0.0.0:3000にアクセスするも 「Google Chrome では 0.0.0.0:3000 に接続できませんでした」とか言われる。
route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
\(^o^)/オワタ port空いてないワロタ
ついでにifconfig打ってみたけどやっぱり空いてない
ポートあけるよー
su
vagrant
vi /etc/sysconfig/iptables
下記を追加
-A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
中身を見てみる
cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
exit
exit
vagrant reload
vagrant ssh
cd arround_jp
rails s
http://localhost:3000 にアクセス まだつながらない
exit
exit
vi Vagrantfile
下記を記述
config.vm.network :forwarded_port, guest: 3000, host: 3000
vagrant reload
起動ログの中に空いたっぽいのがでた
[default] -- 3000 => 3000 (adapter 1)
vagrant ssh
http://localhost:3000 にアクセス
無事つながったb
Started GET "/" for 10.0.2.2 at 2013-11-21 18:25:04 +0000
Processing by Rails::WelcomeController#index as HTML
Rendered /usr/local/rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/railties-4.0.1/lib/rails/templates/rails/welcome/index.html.erb (14.6ms)
Completed 200 OK in 58ms (Views: 57.6ms | ActiveRecord: 0.0ms)
推察
おそらくだけど、vagrant側のポートはiptablesで空ける必要があって、guestから叩いたポート(guest)をvagrant側に届けてくれるNATぽい事をforwarded_portがやってくれてるんだと想像してみる
forwardedは転送って意味だし(´・ω・`)b