Program LOG

勉強した内容をまとめ中。。。間違ってたら教えて。。。

Windows&Vagrantで自動仮想環境構築 - ネットワーク設定とWEBサーバー導入編

前回までの記事はこちら
Windows&Vagrantで自動仮想環境構築 - Program LOG

前回は、ひとまずVagrantのインストールを行い、Boxをインストールして、
起動したり、停止したり、再起動したりと色々試した上で、
仮想マシンを削除しました。
今回は、ネットワークの設定や、apacheのインストールなど、細かな設定を行いたいと思います。

ネットワーク設定

$vagrant init dev1を実行すると、vagrantfileが作成されますが、
そのファイルを修正するだけで、ネットワーク設定を行う事が出来ます。

24  # Create a private network, which allows host-only access to the machine
25  # using a specific IP.
26  # config.vm.network "private_network", ip: "192.168.33.10"
↓ 以下のように修正
24  # Create a private network, which allows host-only access to the machine
25  # using a specific IP.
26  config.vm.network "private_network", ip: "192.168.33.10"

Vagrantが起動している場合は、一旦終了してから行ってください。

修正内容を保存後、$vagrant upとして、起動しましょう。
ネットワークの設定が完了していますので、tera termを使って以下のように接続テストしてみました。

  • ホスト 192.168.33.10
  • ユーザ名 vagrant
  • パスワード vagrant

無事に接続が出来ました!

ネットワークの設定も行っておきたいと思います。
お約束のオプションから。。。

[vagrant@localhost ~]$ sudo vi /etc/resolv.conf

resolv.confファイルを開いて、以下のように設定。

options single-request-reopen

この設定をすると、接続などが早くなるらしいです。
ついでに、開発環境には、ファイヤーウォールの設定は不要なので、きっておきたいと思います。

[vagrant@localhost ~]$ sudo service iptables stop
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
[vagrant@localhost ~]$ sudo chkconfig iptables off

CentOSをインストールしたときのわずらわしい設定が、たったこれだけで済みます。

WEBサーバーを作ってみる

せっかくインストールが終わりましたので、apacheをインストールしてみたいと思います。
まずは、インストール出来ているか確認して、何も返答が無ければ、インストールされていません。

[vagrant@localhost ~]$ yum list installed | grep httpd

次に、インストールを実行したいと思います。

[vagrant@localhost ~]$ sudo yum -y install httpd

今回は、apacheの設定は特に行わないで、取り合えず起動したいと思います。

[vagrant@localhost ~]$ sudo service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
                                                           [  OK  ]
[vagrant@localhost ~]$ sudo chkconfig httpd on

CentOSのhostsを設定していないので、エラーが出ていますが、無事に起動できました。

ページを確認してみる。

WEBサーバーをインストールして、起動したのでブラウザから確認してみようと思います。
まずは、「docment_root」に「index.html」を作成して、ブラウザにローカルIPを指定して確認したいと思います。

[vagrant@localhost ~]$ cd /var/www/html/
[vagrant@localhost html]$ sudo vi index.html

ファイルの中身は適当にhtmlを書いてもらえればOKです。
次は、ブラウザから「http://192.168.33.10/index.html」と入力して確認できれば完璧です!

Vagrant共有フォルダで開発する。

このままだと、開発の際、ファイルを保存した後に、SCPなどの転送ツールを使って、
ローカルファイルをサーバーにアップしなければいけません。
開発していると保存した直後に確認したくなりますよね?
そこで役に立つのが、Vagrant共有フォルダです。
ホストOS(Windows)のvagrantfileがあるディレクトリと、仮想サーバーの「/vagrant」ディレクトリが共有フォルダになっています。
それを活用して、apacheのドキュメントルート以下をシンボリックリンクして、「/vagrant」をドキュメントルートにして開発していきたいと思います。
まずは、先ほど作成したファイルを削除してから、シンボリックリンクを設定したいと思います。

[vagrant@localhost www]$ sudo rm -rf /var/www/html
[vagrant@localhost www]$ sudo ln -fs /vagrant/ /var/www/html
[vagrant@localhost www]$ ll
total 12
drwxr-xr-x 2 root root 4096 Apr  3 23:57 cgi-bin
drwxr-xr-x 3 root root 4096 Apr 13 03:07 error
lrwxrwxrwx 1 root root    9 Apr 13 03:50 html -> /vagrant/
drwxr-xr-x 3 root root 4096 Apr 13 03:07 icons

シンボリックリンクについては以下のサイトを参考にさせていただきました。
シンボリックリンクとは

また、開発の際に、gitやsvnを使ったりすると思うので、シンボリックリンクを設定する場合は、
その点も考慮していく必要があると思います。

今回は、ネットワークの設定とapacheの設定を行いました。
次回以降はprovisioningや自作のBox作成など、いろんなことを試したいと思います。