仕様変更だったり、ディレクトリ配置等が色々あるので自分の流儀を決める
Chef, Vagrantのインストール
chef関連ツールをインストール
> gem install chef knife-solo berkshelf
Vagrantはgemで入れると古いので公式サイトからパッケージでインストールする
Vagrant Pluginをインストール
> vagrant plugin install vagrant-berkshelf vagrant-vbox-snapshot
アプリケーションの雛形の作成
一番最初の雛形はknife solo
で作成するのが無難
> knfie solo init foo
berks
でBerksfile, Gemfile, Vagrantfileの雛形を生成する。gitの初期化もしてく
れる。既存ファイルを上書きするか聞かれるので"a"を押して、全部上書きする。
> berks init foo
cookbookの雛形を作成しておく
> knife cookbook create MyApp -o site-cookbooks
gitに突っ込んでおく
> git add -f * .chef/ .gitignore
> git commit
.chef/knife.rbにknife solo実行時のcookbook, role, node等のpathが入っているの
でこれは必須ファイル。このファイルがなくてハマることが多い
Vagrantの設定
いい感じに設定して、provisionをoffでとりあえず立ち上げる
> vagrant up --no-provision
chef soloの開発やsshで簡単に接続できるようにssh-configを書きだしておく。 この時ホスト名を分かりやすいものに置換しておくと良い
> vagrant ssh-config | sed 's/default/HOSTNAME/' >> ~/.ssh/config
置き換えたホスト名で接続確認
> ssh HOSTNAME
Chef SoloをVM側に容易
> knife solo prepare HOSTNAME
VMのスナップショットを作成
今後すぐに初期状態に戻せるようにスナップショットを作成しておく
> vagrant snapshot take chef-ready
Berksfileを更新
cookbook用のbundler。これから自分が書くcookbookの依存ファイルを追加する
> cat Berksfile
site :opscode
cookbook "yum"
cookbook "database"
cookbook "mysql"
cookbook "nginx"
cookbook "simple_iptables"
cookbook "openssl"
Cookbookを修正
好きなようにsite-cookbooks/MyApp/以下を修正していく
chef soloを実行
ある程度できたらVMにchefを適用する。
> knife solo cook HOSTNAME -V | tee install-log
-V
を付けて詳細なログを出す。長いのでinstall-logにも書きだしておく。
後はトライアンドエラーで徐々に修正していく
繰り返しすぎてよくわからなくなったりしたら、スナップショットの状態に戻して再度試す
> vagrant snapshot go chef-ready
完成
最終的にいい感じに仕上がったら、vagrantコマンドで一発で入るか確認する
> vagrant destroy
> vagrant up --provision
0 件のコメント:
コメントを投稿