VirtualBox + Vagrant +Rails + Mysql で初心者が開発環境構築(Windows7)①

デプロイの絶望に開発環境の再構築で挑むことに決めた私は、いざ仮想環境の開発に赴いたのでした。

しかし、そこは残念ながら素人。

自分の力では何もできません。

と、いうことで、こちらの記事を参考にさせていただき、頑張ってみました。

【Windows7】VirtualBox + Vagrant + Ruby + Rails4 開発環境の構築【初心者必見】

Vagrant 1.8 + CentOS 7 + VirtualBox 5 + Ruby on Rails + Mysqlで開発環境構築

が、色々と詰まったので、この通りにやってみて、手が止まったところを書いて行きたいと思います。

ちなみに、順番をわかりやすく文字にするとこんな感じでしょうか。

  1. cpu-zで仮想化支援機能(VT-x/AMD-V)が使用可能か確認
  2. VirtualBoxのインストール
  3. Vagrantインストール
  4. 仮想マシンの作成
  5. rails関連パッケージのインストール
  6. Mysqlのインストール
  7. アプリの作成

それでは早速やっていこうと思います!

1.cpu-zで仮想化支援機能が使用可能か確認

まず、仮想環境を構築する前に、それができるかどうかを確認する必要がありますので、cpu-zで仮想化支援機能(VT-x/AMD-V)が使用可能か確認します。

調べてみたところ、cpu-zとは・・・

  • 自分のパソコンのスペックを見ることができるツール
  • 使用方法は簡単で、起動すれば、スペックが見られる

なんだ、簡単じゃーんって思ったら、ダウンロードページで固まりました・・・

ダウンロードページって、いっぱいありすぎてどれをダウンロードすればいいかわからないってなるのはあるあるですよね。

調べてみたところ、「ZIP-ENGLISH」をダウンロードすればいいみたいです。

早速ダウンロードして、インストール、起動してみました!(cpu-z公式ダウンロードページはこちらから

無事に起動できまして、チェックしたところ、私のパソコンはどうやら仮想環境の構築いけるようでした!

これで一安心なので、次に進みます!

2.VirtualBoxのインストール

上記の記事を参考にして進みましたが、またどれをダウンロードするのかわからない現象が・・・

Download VirtualBox からダウンロードできるそうなんですが・・・
どうやら、一番上のVirtualBox 5.1.10 platform packages.(数字のところはバージョンなので変わると思います)の中から、自分の環境にあったものをダウンロードすればよさげ。

私はwindowsなので、一番上の「windows hosts」をダウンロード、インストールしました。

が、インストールの最中、

  • Oracle Corporation ユニバーサル シリアル バス コントローラ
  • Oracle Corporation ネットワークアダプター
  • Oracle Corporation Network Service

をインストールするかどうか聞かれました。

なんじゃこれ!?

と思い調べてみたところ、インストールしていいそうです。

ちなみに、最初よくわからないので拒否ったら、VirtualBoxのインストール失敗しました 笑

その後、全部インストールして、yesマンになっていたら、無事にVirtualBox入りました!

3.Vagrantインストール

これはスムーズでした!

ダウンロード画面も実にわかりやすかったですねー

Download Vagrant の画面の中から、自分のパソコンに合わせてダウンロードして、インストールのときに、yesマンになるだけです。

私はwindowsなので、windowsを選択し、ダウンロード、インストールしましたよ!

4.仮想マシンの作成

色々と、やり方があってどれがいいのか難しかったのですが、私は一番作業の順序のわかりやすい、

  1. 作業用フォルダ作成
  2. box add コマンド(vagrant box add {name} {url})でBOXの導入

の手順を取ることにしました。

http://www.vagrantbox.es/からBOXのテンプレートを選ぶとのことですが、どれにすればいいかわからなかったので、とりあえず言われた通り、URLにbentoの入っているChef社のBoxにしておきました。

ちなみに、以下実際に私が打ったコマンドです。

ご参考までに。

> mkdir C:\src\work        ←作業用のフォルダ作成
> cd C:\src\work        ←フォルダに移動
vagrant box add CentOS7 http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-7.0_chef-provisionerless.box ←BOXを入れるコマンド
> vagrant box list       ←ちゃんとBoxできているか確認
> mkdir C:\src\work\CentOS7  ←Vagrantfileを入れる{name} のフォルダを作成
> cd C:\src\work\CentOS7      ←作ったフォルダに移動
> vagrant init CentOS7     ←Vagrantfileの作成コマンド
> vagrant up          ←起動コマンド

5.rails関連パッケージのインストール①

無事にvagrantが立ち上がったので、仮想マシンに色々と開発用パッケージ入れていこうと思ったのですが、どうやら仮想マシンとローカルマシンとの接続はssh接続で作業するのが好ましいとのこと。

しかし、windowsのコマンドプロンプトはutf-8に対応していないので、ターミナルソフトを使用する必要があるんだとか。

ということで、私は「rlogin」というソフトを使って接続、作業することにしました!

公式サイトから、自分のパソコンにあったものを選んでダウンロード、インストールしてください。(「rlogin」ダウンロードサイト→http://nanno.dip.jp/softlib/man/rlogin/#INSTALL

「rlogin」を起動し、エントリー/コメント(何でもいいのでお好きな名前を)、プロトコル、Server Address、Socket Port、User Name、Password、デフォルト文字コードに「UTF-8」を入力して、接続してみたところ、無事に接続されました!(それぞれ「vagrant up」するとコマンドプロンプトの画面に出てくるので、それを打ち込んでください。)

ということで、開発用のパッケージのインストールを始めようと思い、yum update をしたところ・・・

エラーが起こったのでした。

なぜだ・・・

吐き出されたエラーはこんな感じ。

Loaded plugins: fastestmirror
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
 One of the configured repositories failed (Unknown),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:
                                    .
                                    .
                                    .
                  (続く)

なんじゃこりゃ、と思って調べてみたところ、これはどうやら、yumコマンドが使えないよ、というエラーで、原因はDNSサーバーの設定にあるんですって。

ほーん、と思って調べてみるも、日本語のページが少ない少ない・・・

仕方ないので、英語のページを見ていたら、「 /etc/resolv.conf」というファイルのnameを8.8.8.8に変えればいいらしい。

ということで、やってみました。

$ sudo vi /etc/resolv.conf

とすると、「 /etc/resolv.conf」の編集画面に行くので、「i」を押して編集モードにした後、「nameserver」のところを「8.8.8.8」に変更して、Escキーを押して編集モードを抜けたら、「:wq」で編集内容を保存して終了。

もう一度、yumコマンド使ってみると・・・

うまくいきました!

よかったーとひと段落して、と思い開発用パッケージのインストールを再開しようとしたのですが、開発用パッケージのインストールは時間がかかるらしいので、きりがいいし、続きは明日にでもやるかーと思い、vagrant halt で停止してこの日は終わったのでした。

次の日、悲劇が襲うことなど知る余地もなく。

長くなってきたので、次回に続きます。(VirtualBox + Vagrant +Rails4 + Mysql で初心者が開発環境構築(Windows7)②はこちらから

まとめ

まー色々と書いてきましたが、結局何が言いたかったかというと、

なかなかうまくはいかないね

ってことです。

チュートリアル通りにやってすんなりいくことって、本当に少ないですよね。

必ずどっかしらでエラーを吐くんですよね。

そして、そのエラーを調べて、解決してってやっていると、かなりの時間を浪費してしまいます・・・

実に悲しいのです。

もっと詳しければスマートに解決できるのになぁと思ってしまいましたね。

もっと、勉強して、知識をつけたいものです。