chef memo
環境構築といえば、chefだという噂を随分と聞くようになってきましたが、 なんだかんだと使ってなかったのでメモ。 とはいえ、レシピは誰かが書いてるので、 今回は出来る限りレシピを使う方法で構築を目指す。
前準備
# Gemfileに記載
source 'https://rubygems。org' # URLの指定。呪文だと思って毎回書く
gem 'berkshelf'
gem 'chef'
gem 'knife-solo'
必要なgemをいつものように。
bundle install
chef-soloを使えるように初期設定を行う。
bundle exec knife configure
そろそろchef
ひな形の生成。
$ bundle exec knife solo init chef-repo
$ tree chef-repo/
chef-repo/
├── cookbooks
├── data_bags
├── nodes
├── roles
├── site-cookbooks
└── solo。rb
忘れないうちにコミット。
cd chef-repo
git init
git add 。
git commit -m 'first commit'
公式なり、Githubにて公開されているレシピを利用しやすくるものとして Berksfile があります。
site :opscode # Berksfile
cookbook "apt"
cookbook "git"
cookbook "zsh"
cookbook 'vim'
cookbook 'the_silver_searcher'
公開されているレシピの情報を記述しておけば、コマンド1つで落としてこれます。 便利。
bundle exec berks install --permalink cookbooks
vagrant側でchefが使えるように以下のコマンドを実行。
bundle exec knife solo prepare nodename
インストールしたいレシピを追加 node/nodename.json。
{
"run_list": [
"recipe[apt]",
"recipe[git]",
"recipe[zsh]",
"recipe[vim]",
"recipe[the_silver_searcher]"
]
}
レシピはできたのでcookしましょう。
bundle exec knife solo cook nodename