Vagrant+Chefレシピでphp環境の方法をメモ

仮想マシンを構築するvagrantで仮想環境はvirtualboxのcentosとする
centosのBoxを使ってphp + mysql + apache を構築する

1. virtualbox,vagrantをインストールする

公式サイトから各環境に合わせてダウンロードしインストールを実行

Virtualboxインストール
https://www.virtualbox.org/
Vagrantインストール
http://www.vagrantup.com/

2. vagrantのcentosBoxをインストールする

今回は「Vagrant-Box一覧サイト」内のCentOSのBOXを使用する

Vagrant-Boxesインストール
http://www.vagrantbox.es/


http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-i386-v20130427.box

3. chefをインストールする

chefは構築環境の設定内容をコードで記述するもの

Chefインストール
http://www.opscode.com/chef/

マック環境:

 curl -L https://www.opscode.com/chef/install.sh | sudo bash
 

インストール確認

 gem list
 

4. knife-soloプラグインをインストールする

cookbook(開発環境を記したもの)の命令をリクエストするためのものがknifeになる

 sudo gem install knife-solo
 

インストール確認

 gem list
 

5. knife-soloの初期設定をする

knife configure

全てデフォルト設定としてエンターを続けて押し終了する

6. 仮想マシンに使用するvagrantを構築する

・仮想マシンに使用するディレクトリを作成する

mkdir [仮想マシンディレクトリ名]
cd [仮想マシンディレクトリ名]
vagrant init [boxの名前]

・vagrantファイルの編集
プライベートネットワークを設定しローカル環境からアクセスできるようにする
IPアドレスは初期状態で「192.168.33.10」になっているが変更しても良い
この設定でローカルから仮想環境にipアドレスでアクセスが可能になる

- #config.vm.network :private_network, ip: "192.168.33.10"
+ config.vm.network :private_network, ip: "192.168.33.10"

7. 仮想マシンを立ち上げる

vagrant up

8. 仮想マシンの状態確認

vagrant status

「default running (virtualbox)」
が表示されればOK

9. sshのエイリアス作成

vagrant ssh-config --host [sshエイリアス名] >> ~/.ssh/config

仮想マシンアクセス方法

vagrant ssh

又は指定したエイリアス名

ssh [エイリアス名]

10. chefのリポジトリを作成する(ローカル側)

knife solo init [リポジトリ名]

リポジトリの中にディレクトリが構成される
※ここではsite-cookbook,nodesディレクトリのみ使用する

11. 仮想マシンをchef対応にする

cd [リポジトリ名]
knife solo prepare [sshエイリアス名]

12. cookbookを作成する

cookbookに構築する環境の設定コードを記述することで仮想環境が指定した環境になる

knife cookbook create [cookbookの名前] -o site_cookbooks/

13. cookbookに構築する環境の設定コードを記述する

[リポジトリ名]\[cookbookの名前]\recipes\default.rbファイル編集

#
# Cookbook Name:: php
# Recipe:: default
#
# Copyright 2013, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#

service "iptables" do
    action [:stop, :disable]
end

%w{php php-common php-mbstring php-xml php-devel php-process php-cli php-pear php-mysql mysql-server}.each do |p|
	package p do
    	action :install
    end
end

# apacheのインストール CentOSの場合
package "httpd" do
	action :install
end

# apacheの起動 CentOSの場合
service "httpd" do
    action [:start, :enable]
end

template "/var/www/html/index.html" do
    source "index.html.erb"
    mode 0644
end

完成例 ※ 「PHP + MYSQL + APACHE」環境
https://github.com/y-matsumoto/php-mysql-apache-vagrant-environment

14. 実行するrecipe(cookbook)を指定する

[リポジトリ名]\nodes\[sshエイリアス名].jsonファイル編集

{
    "run_list":[
        "recipe[[cookbookの名前]]"
        ]
}

15. 完成したcookbookをvagrant仮想環境へ反映させる

knife solo cook [sshエイリアス名]

16. Webサーバ(apatch)テスト

ブラウザでhttp://192.168.33.10/ へアクセス
[リポジトリ名]\[cookbookの名前]\template\default\index.html.erbが表示される ※完成例


chef test html

        test desu

その他おすすめの備忘録

Tagged with:
 

3 Responses to [Vagrant + Chef]CentOSにPHP + MYSQL + APACHE 環境を構築する

  1. t32k より:

    knife configure

  2. sisidovski より:

    分かりやすいチートシート

  3. bigchu より:

    chef / これでいいかな

コメントを残す