Vagrant + Chef ⇒ LAMP環境構築
目的
Vagrant と Chef を利用して LAMP 環境をローカルの仮想環境で実現する
経緯
同一サーバ上で作業している場合に
MySQL のバージョンアップしてパフォーマンステストしたりしたいなぁ、
でも、他のみんなに迷惑かかっちゃうよ or サーバ買ってもらえないし、
というときなんかに
ローカル環境で試せるね
ってことで導入しました。
環境
- MacOSX Marvericks
- Vagrant
- VirtualBox
前提
以下がインストールされていること
- Vagrant
- VirtualBox
- Chef
- knife-solo
↑ 最下の「あとがき」にあるドットインストールで導入手順を参考にしました。
1. knife-solo 初期化
1 | $ knife configure |
色々尋ねられますが、基本、[Enter]連打で問題ありません。
2. BOX 追加
BOX とは、仮想マシン起動の際にベースとなるイメージファイルです。
centos64 という名前で box を追加します。
1 | $ vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-i386-v20131103.box |
※利用しているサーバ環境と合わせたい場合は、
お使いのサーバにログインして以下実行で環境情報を調べるのが良いでしょう。
1 | $ uname -a |
box は以下から URL を選べます。
http://www.vagrantbox.es/
3. 仮想環境 初期化
1 | $ mkdir [vagrant用ディレクトリ] |
成功するとVagrantfileができているのがわかります。
1 | $ ls |
4. Vagrantfile 修正
private network の設定をして
ローカル環境からアクセス出来る様にします。
MacOS → VirtualBox
へのアクセスです。
以下のようにコメントアウトを外すのみ!
1 | #config.vm.network :private_network, ip: "192.168.33.10" |
5. 仮想環境 起動
Vagrantfile のあるパスで以下実行
1 | $ vagrant up |
以下実行で「running(virtualbox)」を実行すると、起動中であることを確認できる。
1 | $ vagrant status |
1 | Current machine states: |
以下実行でログイン
1 | $ vagrant ssh |
ログインした後、ログアウトしたい場合に以下実行
1 | $ exit |
6. ssh エイリアス作成
1 | $ vagrant ssh-config --host [sshエイリアス] >> ~/.ssh/config |
以下実行でアクセスできる。
1 | $ ssh [sshエイリアス] |
また、以下実行で ssh の config に書き込まれていることを確認できる。
1 | $ cat ~/.ssh/config |
7. Chef リポジトリ作成
以下のような構成が管理しやすいかなと思いますので、
以下のように作ります。
1 | | |
[vagrant 用ディレクトリ]の1つ上の階層に移動しておいて
以下実行
1 | $ knife solo init [Chefのリポジトリ名] |
8. 仮想マシンを chef 対応させる
1 | $ cd [Chefのリポジトリ名] |
9. cookbook 作成
1 | $ knife cookbook create [cookbook名] -o site_cookbooks/ |
10. cookbook に構築する環境の設定記述
1 | $ vim [Chefのリポジトリ名]/[cookbook名]/recipe/default.rb |
11. 実行 recipe 指定
1 | $ vim [Chefのリポジトリ名]/nodes/[sshエイリアス名].json |
1 | { |
12. テンプレートを作成
1 | $ vim [Chefリポジトリ名]\[cookbookの名前]\template\default\index.html.erb |
index.html.erb の中身は自由に編集してください。
例として
1 | <h1>Hello, World</h1> |
13. cookbook を vagrant 仮想環境へ反映
1 | $ knife solo cook [sshエイリアス名] |
13. 設定した仮想環境の Web サーバへアクセスする
ブラウザで http://192.168.33.10 へアクセス
ブラウザに以下が表示されることを確認!
1 | Hello, World |
また、仮想環境にアクセスすると以下ファイルができていることを確認できるので
試してみてください。
1 | $ vagrant ssh |
あとがき
ドットインストールで以下さらっておくととっつきやすいです。
Vagrant + Chef ⇒ LAMP環境構築
https://kenzo0107.github.io/2014/05/29/2014-05-30-vagrant-chef/