shinsuzuki’s blog

初心者による初心者のためのVirtualBoxを使用したLinux(CentOS)の構築

Vagrant:プロビジョニング

Vagrantのプロビジョニング機能により、GuestOS内にアプリケーションを自動インストールする。

 

実行環境

HOST OS:Windows 7 Professional

RAM:2GB

GUEST OS:CentOS 6.6

 

プロビジョニングを利用するには、まずGuestOS上で実行される自動インストール用のシェルスクリプトを用意する。ここではファイル名”bootstrap.sh”として以下の内容を記述しvagrantfileと同じフォルダに保存し、Apacheをインストールした。

 

#!/bin/bash

echo "/*-------- vagrant install script --------*/"

# install Apache HTTP Server
yum install -y httpd

# Apache HTTP Server Restart
/etc/init.d/httpd restart

# iptables accept port 80(HTTP)
iptables -I INPUT 5 -m state --state NEW -p tcp --dport 80 -j ACCEPT

# iptables save & restart
/etc/init.d/iptables save
/etc/init.d/iptables restart

 ※ http(port:80)の許可は、初期状態のiptablesssh(port:22)の下に決め打ちで挿入している為、環境によりエラーとなる可能性があるかもしれない。

 

作成したシェルスクリプトファイルを利用するようにvagrantfileに以下の設定を追加する。

 

72:  config.vm.provision "shell", path: "bootstrap.sh"

 

また、HostOSからApacheの動作を確認用に25行目あたりにあるポートフォワードの設定をアンコメントして有効にした。

 

25: config.vm.network "forwarded_port", guest: 80, host: 8080

 

HostOS上のブラウザから、localhost:8080へアクセスして "Apache 2 Test Page" が表示されれば成功。

 

追記

vagrantfile内に直接記述することも可能。67行目~70行目までアンコメントし、

SHELL~SHELL間に設定内容を記述する。

 

67:     config.vm.provision "shell", inline: <<-SHELL
68:         echo "#### vagrant install inline script ####"
69:         echo "#### install Apache HTTP Server ####"
70:         yum install -y httpd
71:         echo "#### Apache HTTP Service Restert ####"
72:         /etc/init.d/httpd restart
73:
74:         echo "#### iptables accept port 80(HTTP) ####"
75:         iptables -I INPUT 5 -m state --state NEW -p tcp --dport 80 -j ACCEPT
76:
77:         echo "#### iptables accept port 80(HTTP) save ####"
78:         /etc/init.d/iptables save
79:
80:         echo "#### iptables restart ####"
81:         /etc/init.d/iptables restart
82:
83:     SHELL

 

 

 

実践 Vagrant

実践 Vagrant

 

 

 

Vagrant入門ガイド

Vagrant入門ガイド