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