74
74

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vagrant体験入門ハンズオン手順 - 2014/04/24 DevLove関西

Last updated at Posted at 2014-04-24

Vagrant体験入門ハンズオン手順 - 2014/04/24 DevLove関西

ハンズオン手順

1. 事前準備

1-1. USB メモリスティックを差して、以下のディレクトリを自分の PC にコピー、展開しておく

20140424_devkan.zip

1-2. VirtualBox インストール(インストール済なら不要)

20140424_devkan/ にある VirtualBox-4.3.10-xxx でインストール

1-3. Vagrant インストール(インストール済なら不要)

20140424_devkan/ にある Vagrant-1.5.4.xxx でインストール

1-4. vagrant バージョン確認

vagrant コマンドを実行してバージョンを確認

$ vagrant -v
Vagrant 1.5.4

1-5. Box の追加

20140424_devkan/ にある opscode_centos-6.5_chef-provisionerless.box を、vagrant box add コマンドで追加

$ cd 20140424_devkan
$ vagrant box add opscode-centos65 opscode_centos-6.5_chef-provisionerless.box

vagrant box list で、opscode-centos65 が表示されていれば ok

$ vagrant box list
opscode-centos65         (virtualbox)

2. Vagrant で仮想マシンを操作

2-1. Vagrantfile 作成

vagrant init コマンドで、初期状態の Vagrantfile を作成

$ vagrant init opscode-centos65
$ ls
Vagrantfile

vagrant status コマンドで、仮想マシンの状態を確認

$ vagrant status
Current machine states:

default                   not created (virtualbox)

2-2. GUI モードを有効に

Vagrantfile を編集して、GUIモードを有効に

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "opscode-centos65"

  # GUIモードを有効にする
  config.vm.provider "virtualbox" do |vb|
     vb.gui = true
   end
end

2-3. 仮想マシンを起動

vagrant up コマンドで、仮想マシンを起動。VirtualBox ウィンドウが表示されて、CentOS が起動。

$ vagrant up

2-4. 仮想マシンにログイン

vagrant ssh コマンドで、仮想マシンにログイン。Windows であれば、VirtualBox ウィンドウから直接ログインしても ok。( login: vagrant / password: vagrant)

$ vagrant ssh
[vagrant@localhost ~]$ 

[vagrant@localhost ~]$ cat /etc/redhat-release
CentOS release 6.5 (Final)

[vagrant@localhost ~]$ exit
$ 

2-5. 仮想マシンを停止

vagrant halt で仮想マシンを停止(電源オフ)

$ vagrant halt
$ vagrant status
Current machine states:

default                   poweroff (virtualbox)

再び起動するなら、vagrant up

2-6. 仮想マシンを破棄

vagrant destroy で仮想マシンを破棄する。破棄するか確認されるので、yを入力する

$ vagrant destroy
    default: Are you sure you want to destroy the 'default' VM? [y/N] y

$ vagrant status
Current machine states:

default                   not created (virtualbox)

3. Vagrant で開発環境を構築

Apache をインストールして、httpd サーバを仮想マシンに構築
ホストで編集したHTMLが、仮想マシンの Apache で表示できるようにする。

3-1. Vagrantfileを編集

Vagrantfile を下記のように編集

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "opscode-centos65"

  config.vm.provider "virtualbox" do |vb|
    vb.gui = true
  end

  config.vm.network "private_network", ip: "192.168.33.10"

  config.vm.provision "shell", inline: <<-EOT
    #
    # iptables off
    #
    /sbin/iptables -F
    /sbin/service iptables stop
    /sbin/chkconfig iptables off
    #
    # Apache
    #
    yum -y install httpd
    /sbin/service httpd restart
    /sbin/chkconfig httpd on
  EOT
end

ポイント

  • IPアドレスを付与(192.168.33.10)
  • シェルプロビジョナで、プロビジョニング
  • iptables を停止(ローカルVMなので、ファイアウォール不要)
  • httpd を yum でインストール

3-2. 仮想マシンを起動

vagrant up で仮想マシンを起動

$ vagrant up

ブラウザで、http://192.168.33.10/ にアクセスすれば、Apache の welcome ページが表示される。

表示されなければ、プロビジョニングが実行されていないかもしれないので、vagrant provision を実行

$ vagrant provision

3-3. HTMLファイルを作成

表示するHTMLを作成

$ echo "Hello Vagrant!!" > index.html
$ ls
Vagrantfile index.html

3-4. httpd.conf を変更

DocumentRoot を synced_folder(/vagrant)に変更

仮想マシンにログインして、/etc/httpd/conf/httpd.conf を /vagrant/ にコピー。
/vagrant は、synced_folder なので、ホスト側で httpd.conf が参照できる。

[vagrant@localhost ~]$ cp -a /etc/httpd/conf/httpd.conf /vagrant/
[vagrant@localhost ~]$ exit
$ ls
Vagrantfile httpd.conf index.html

httpd.conf に VirtualHost を追記して、DocumentRoot を /vagrant にする。

$ vim httpd.conf
# 以下を追加
<VirtualHost *:80>
    DocumentRoot /vagrant
</VirtualHost>

Vagrantfile を編集して、httpd.conf を /etc/httpd/conf/ にコピーするようにする。

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "opscode-centos65"

  config.vm.provider "virtualbox" do |vb|
    vb.gui = true
  end

  config.vm.network "private_network", ip: "192.168.33.10"

  config.vm.provision "shell", inline: <<-EOT
    #
    # iptables off
    #
    /sbin/iptables -F
    /sbin/service iptables stop
    /sbin/chkconfig iptables off
    #
    # Apache
    #
    yum -y install httpd
    cp -a /vagrant/httpd.conf /etc/httpd/conf/  # <---追加
    /sbin/service httpd restart
    /sbin/chkconfig httpd on
  EOT
end

3-5. プロビジョニング実行

vagrant provision で、プロビジョニング実行。

$ vagrant provision

ブラウザで、http://192.168.33.10/ にアクセスして、index.html の内容が表示されれば ok

index.html を変更すると、ブラウザをリロードすると、内容が変更されていることを確認

3-6. Vagrantfile で再構築

仮想マシンを破棄して、再び vagrant up すると、同じ仮想マシンが構築できることを確認

$ vagrant destroy -f
$ vagrant up
$ open http://192.168.33.10/

ブラウザで、http://192.168.33.10/ にアクセス

Appendix

VagrantX - GUI クライアント(OSX)

vagrant 主なコマンド

  • Vagrantfile作成
$ vagrant init
  • 仮想サーバ状態表示
$ vagrant status
  • 仮想サーバ起動
$ vagrant up
  • 仮想サーバへSSHログイン
$ vagrant ssh
  • 仮想サーバ停止
$ vagrant halt
  • 仮想サーバ停止+破棄
$ vagrant destroy
  • プロビジョニング実行
$ vagrant provision
74
74
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
74
74

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?