Django環境構築 Linux CentOS 編 その2 Vagrantの操作

前回の続きedtech.hatenadiary.jp

いよいよ、CUI側でvagrantでバーチャル環境を構築していきます。 ちなみに、Vagrantとは何ぞやについてや、Vagrantについてもっと知りたい方は こちらを読んでみると良いです。Vagrant入門 – Vagrantとは? なぜ Vagrant なのか? | WEB ARCH LABO

Vagrantではまず、Boxを作ります。Boxを一からつくるより、すでに作られたBOXを 持ってくる方が簡単です。すでに作られたBOXを検索するのは、こちらから辿ってください。

A list of base boxes for Vagrant - Vagrantbox.es

詳しくは、下記URLの記事を参照ください。 Mac OS X 版Vagrantを利用して仮想マシンを操作してみよう | WEB ARCH LABO 簡単に説明すると、vagrant boxを追加する上で、Box名は好きに作れます。
Box名を{name}の部分に、下記、その後に上のURLから辿ってほしいOSのバージョンのURLをコピーしたものを{url}の部分に貼り付けます。
vagrant box add {name} {url}

今回はCentOS 7をインストールしたいと思います。 が、ここでいきなり打ち込む前に少しした準備をしておきたいと思います。 管理しやすいようにフォルダを作成しておきます。

mkdir MyVagrant && cd MyVagrant mkdir mycentos7 && cd mycentos7

mkdirはフォルダ作成コマンドです。 mkdir {フォルダ名} cdはフォルダへの移動をします。cd MyVagrantとする事で、MyVagrantフォルダに移動しています。 &&は2つのコマンドをつなげて1行で実行する時に使います。

Linuxのコマンドを詳しく知りたい人は下記URLも参考にしてください。 Linux コマンドリファレンス

何の為にこんな事をしているかというと、この後に行う、Vagrant環境構築で、vagrantofileというものができます。で、今回はCentOSを追加しますが、Ubuntuなども追加したい場合や、他のバージョンのCentOSの環境を作ろうといった場合に、フォルダを分けて作成するのですが、その場所をMyVagrantフォルダで管理しようとしています。

それでは、次の場所に移動したら、MyVagrant/mycentos7/ vagrant boxを追加していきましょう。

vagrant box add mycentos7 https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box

としました。 f:id:kuniwoomou:20150427170044p:plain

インストールができているかを確認するためにvagrant box listと打ちます。

f:id:kuniwoomou:20150427170301p:plain listに今回追加したmycentos7 (virtualbox,0)と出て来れば成功です。

次に仮想マシンの初期化をします。 vagrant init mycentos7

f:id:kuniwoomou:20150427170651p:plain

初期化がすんだので、仮想マシンを早速立ち上げます。 起動のコマンドは、vagrant upとなります。

成功していれば、エラーでないのですが、今回はエラーがでちゃいました。

Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant

The error output from the last command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

という事で、対処方法を探すとここにあった。 Vagrantの仮想マシンにphpMyAdminをインストール - one by one

早速、実行

$ vagrant ssh
$ sudo /etc/init.d/vboxadd setup
$ exit
$ vagrant halt
$ vagrant up

ちなみに、vagrant sshで、一度CentOS7にアクセスしてからルート権限で、vboxaddをセットアップして、 その後一度、仮想環境を終了して、再度、起動をしている。

/etc/init.d/vboxaddが何するファイルか気になったので、再びログインしてviエディタで中を覗きにいったら、 カーネルモジュールと書かれていた。ちなみに、カーネルモジュールについて知りたい方はこちら Linuxキーワード - カーネル・モジュール:ITpro

さて、深追いしたおかけげ、何しているのかが若干もやっと理解できたが、その部分はまた今度違う時に書きます。ここで書くと横道それすぎちゃうので。

vagrant upの後に、あらためて、

vagrant ssh

CentOSバージョン7の環境に入ります。

これで、CentOSの仮想環境立ち上げが終わりました。 次回からは、実際にCentOS7にDjangoの環境を構築していきます。

ちなみに、ここまでやってよくわからないけどエラーでてしまったとか、どこまでやったかわからなくなって 最初からやり直したいなんて場合は、

vagrant sshでログインできていれば、exitで抜けてから、vagrant haltで終了させて、vagrant destroyで 環境を壊して、再度やり直してみてください。

vagrantのコマンドは以下を参考ください。 コマンドライン | Vagrant日本語ドキュメント