VirtualBox、Vagrant、knifeによる開発環境作成をやってみる。(1)

VirtualBoxVagrant、knifeによる開発環境作成をやってみる。ホストはWindows7、ゲストはCentOS 5.9。開発環境としては、ゲストの中にGlassFishPostgreSQLを準備してみる。

まずはお勉強から。

VirtualBoxとは

Oracle VM VirtualBoxの事で、Oracleが開発しているx86仮想化ソフトウェア。

Vagrantとは

VirtualBoxを簡単に操作するためのツールで、Rubyで記述されている。そのため、動かすためにはRubyが必要。Vagrantを使用すれば、コマンドラインから簡単に新しいVMを作成する事が出来る。

Chefとは

ruby製のサーバの構成管理ツールで、サーバ構築の自動化をしてくれるツール。ソフトウェアのインストールや設定などを設定ファイルに記述しておくことで、サーバをその設定ファイルの状態にしてくれる。設定ファイルにはサーバのあるべき完成状態を記述し、その差分をChefがうまいこと埋めてくれる感じ。

Chefでよく使用される用語は下記
・Client:Chef Serverに接続するもの全て。管理ツール(knife等)もClient
・Node:Chef Serverに接続するClientの中で、Chefで管理するマシンのこと。NodeはClient
・Resouce:設定の最小単位。例えば「◯◯をインストールする」とか
・Recipe:複数のResourceで構成される1つのグループ
・Cookbook:1つ以上のRecipeをグループとしてまとめたもの
・Role:どのCookbookをどういう設定で使うかを記述する
リポジトリ:Cookbookを入れる場所。Git等でのバージョン管理が推奨される

Chef-soloとは

Chefサーバ無しでレシピを実行することができるツール。

knifeとは

Chefに付属するためのリポジトリ操作ツール。このコマンドを使ってCookbookを作ったり、NodeとRecipeを関連付けたりする。

knife-soloとは

knifeのプラグイン。これを使用すると、ローカルで作ったRecipeをリモートサーバへ送り、リモートサーバでchef-soloを実行することが可能。