近未来都市の幽寂

Webポータル事業の企画・構想から公開・運用まで。

402_Railsのインストール

やったこと

OSをCentOS7に変更

引き続き、環境構築中。
元々は「使えた方が後々役立つかなぁ」という思いから、Dockerを使ってスピーディーに開発をするつもりでしたが、下記の点を考えた末に、Dockerの使用を取り止めました。
(完全にド素人の個人的な見解です)

  • Railsをコンテナ化する旨みが分からない
  • 購入した参考書もDockerを使ってない
  • コンテナへの接続がなんかうまくいかなかった
  • なんとなくパフォーマンスが心配(別に大丈夫らしいけど)

最初はDockerを使う気マンマンだったので、Docker用に最適化されたと名高いCoreOSを使うつもりでしたが、その予定もなくなったので大人しくCentOS7をインストールしました。
なお、VagrantのboxはVagrantbox.esのCentOS7.2を適当にチョイスしました。
Vagrantbox.esは非公式boxファイル集なので、使用は自己責任です)

Railsのインストールまで

適当にプロジェクトフォルダを作成し、そこに移動して

vagrant init CentOS7.2(イメージ名)   #初期化
vagrant up   #起動
vagrant ssh   #接続

を実行。ひとまず、取得したboxファイルから仮想環境が構築され、sshで接続できました。
(ちなみに、Gitをインストールした際のGit Bashを使ってます)
VirtualboxGUIで確認しても、環境が実行中になっていることが分かる。

その後は、下記のQiitaの記事を参考にしながら、rootでログインし、とりあえずRailsのインストールまで完了しました。

qiita.com

# パッケージのインストー
yum install gcc-c++ glibc-headers openssl-devel readline libyaml-devel readline-devel zlib zlib-devel

# rbenvインストー
git clone https://github.com/sstephenson/rbenv.git /usr/local/rbenv
echo 'export RBENV_ROOT="/usr/local/rbenv"' >> /etc/profile
echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"' >> /etc/profile
echo 'eval "$(rbenv init -)"' >> /etc/profile

# ruby-buildインストー
git clone https://github.com/sstephenson/ruby-build.git /usr/local/rbenv/plugins/ruby-build

# rubyインストー
rbenv install -v 2.4.1
rbenv rehash
rbenv global 2.4.1

# Railsインストー
gem update --system
gem install --no-ri --no-rdoc rails
gem install bundler
rbenv rehash

 わかったこと

Vagrantfileのネットワーク設定

通常、VirtualboxのゲストOSから、ホストOS経由でネットワークに接続する場合、デフォルトのネットワークアダプター(NAT)だけでなく追加アダプター(ホストオンリーアダプター)が必要です。

d.hatena.ne.jp

Vagrantで作ったインスタンスの場合、VirtualboxGUIからアダプターを追加しても、いざ起動してみるとまったく反映されず困り果てておりました。
これは、どうやらVagrantfileを直接編集して起動する必要があるみたいです。

Vagrantfile

# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network "private_network", ip: "192.168.33.10" ← コメントアウトを解除する

 この設定で起動すると、無事にホストオンリーアダプターが追加され、ゲストOSからインターネットへ接続できました。しめしめ。

CentOS7以降のNICの名前

下記の記事にも書かれておりますが、どうもCentOS7以降、6までとNICの名前が変更になったようです。

eth0 → enp0s3
eth1 → enp0s8

d.hatena.ne.jp

これには少々戸惑いました。
(boxファイルがおかしいのかと思い、何度かboxを選びなおしているうちに気が付きました。ファック)
まぁ、CentOS7以降は、ifconfigがなくなっていたりcronの仕様が変わっていたりと色々差異があるので、まぁ慣れるしかないでしょうね…

Vagrantのrootユーザーのパスワード

これには本当に参りました。
なんせ、Railsをインストールする際はたびたびroot権限が必要だったわけですが、vagrant標準のvagrantユーザーにはroot権限がない。
そのため、sudoなどでちびちびやってましたが、echoでファイルに書き込む場合はsudoもまったく効かず、完膚なきまでに拒絶されてしまいました。

仕方なく、

su   #rootユーザーへの切り替え

を実行するも、パスワードが分からないから切り替えれない。
何度かアクセスを試みた結果、Vagrantのrootユーザーのパスワードは

vagrant

であることが判明。
マジかよ。脆弱すぎる。速攻でパスワード変えた。
(ちなみにvagrantユーザーのパスワードも同様でした)

つぎにやること

うーん、今は環境構築が楽しいので、構築系以外は後回しにするかも。
というか後回しにします。
環境構築編、まだまだ続きますよー