ChefSoloでVagrantで作った仮想環境の環境構築をする
Vagrantで環境作りなおすたびにいろいろmakeしたりするのが面倒なんでChefを使ってハイカラな環境構築をする。
前提
ゲストマシンはCentOS6.3でChefClientがインストール済みのBoxイメージを利用。
ホストマシンにChefClientをインストール
OpscodeのサイトでOSとバージョンを入力するとインストール用シェルのURLとインストール方法が表示される。
Macなら↓でOK
$ curl -L https://www.opscode.com/chef/install.sh | sudo bash
インストールできたか確認。バージョンが表示されればインストールOK。
$ chef-client -v
ホストマシンにknife soloのインストール
gemでインストールするのでホストマシンにRuby環境が構築済みであれば↓でOK。
$ sudo gem install knife-solo
Rubyインストールしたくない場合はChefClientにRubyとgemがバンドルされているのでそれを使えばOK。
$ sudo /opt/chef/embedded/bin/gem install knife-solo
knifeの設定
いろいろ聞かれるが全部エンターでOK。
$ knife configure
ホストマシンでchefリポジトリを作成
実行するとディレクトリが作成されるので適当なディレクトリを作ってから実行するのがおすすめ。
$ mkdir ~/chef-repo $ cd ~/chef-repo $ knife solo init [任意のリポジトリ名] $ cd [任意のリポジトリ名] $ git init $ git add [knifeコマンドでできたディレクトリたち] $ git commit
cookbookを用意する
cookbookは色んな所で公開されているので、今回はOpscodeのコミュニティ(?)で公開されているcookbookを利用する。
apacheのcookbookを追加してみる。
$ knife cookbook site vendor apache2 -o ./site-cookbooks
SSHのエイリアスを作成
$ vagrant ssh-config --host [任意のエイリアス名] >> ~/.ssh/config
nodeの設定
nodes/[ホスト名].json
{ "run_list":[ "recipe[apache2]" ] }
インストール
$ knife solo cook [ホスト名]
.