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