主にLinuxサーバー設定記録をメモします

chefをインストールする

# gem install chef --no-rdoc --no-ri
# gem install knife-solo --no-rdoc --no-ri
# rbenv rehash

レシピのひな型を入手する

cookbookを設定する

$ mkdir ~/chef-repo/.chef
$ mkdir ~/tmp
$ vi ~/chef-repo/.chef/solo.rb
file_cache_path "/home/chef/tmp/chef-solo"
cookbook_path   "/home/chef/chef-repo/cookbooks"

インストールするレシピを作成する

yumリポジトリからVimをインストールし、設定ファイルを配置するレシピを書いてみる
cookbook作成
$ cd chef-repo
$ rake new_cookbook COOKBOOK=vim
vim
├── README.md
├── attributes     
│   └── default.rb # レシピやテンプレートで使う値を記述する
├── definitions
├── files
│   └── default
├── libraries
├── metadata.rb
├── providers
├── recipes
│   └── default.rb # ここに自動実行する命令を記述する
├── resources
└── templates
     └── default    # 設定ファイルなどのテンプレートをおく

レシピを記述する

$ vi chef-repo/cookbooks/vim/recipes/default.rb
package "vim" do
  action :install
end

rcfile = File.join(node[:vim][:dir], ".vimrc")
template rcfile do
  source "vimrc.erb"
end

file rcfile do
  owner node[:vim][:user]
end

設定ファイルのテンプレートを記述する

$ vi chef-repo/cookbooks/vim/templates/default/vimrc.erb
syntax on
filetype on
filetype indent on
filetype plugin on

set autoindent
set expandtab
set number
set nobackup

set backspace=indent,eol,start
set tabstop=2
set softtabstop=2
set shiftwidth=2

Attributesを記述する

$ vi chef-repo/cookbooks/vim/attributes/default.rb
default[:vim][:dir] = "/home/chef"
default[:vim][:user] = "chef"

chef-soloの実行

# chef-solo -c /home/chef/chef-repo/.chef/solo.rb -j /home/chef/chef-repo/.chef/chef.json
Starting Chef Client, version 11.4.0
Compiling Cookbooks...
Converging 3 resources
Recipe: vim::default
  * package[vim] action install
    - install version 7.2.411-1.8.el6 of package vim-enhanced

  * template[/home/chef/.vimrc] action create
    - create template[/home/chef/.vimrc]
        --- /tmp/chef-tempfile20130304-2815-15yom5c	2013-03-04 17:03:30.662393565 +0900
        +++ /tmp/chef-rendered-template20130304-2815-1mvybc2	2013-03-04 17:03:30.659124571 +0900
        @@ -0,0 +1,15 @@
        +syntax on
        +filetype on
        +filetype indent on
        +filetype plugin on
        +
        +set autoindent
        +set expandtab
        +set number
        +set nobackup
        +
        +set backspace=indent,eol,start
        +set tabstop=2
        +set softtabstop=2
        +set shiftwidth=2
        +

  * file[/home/chef/.vimrc] action create
    - change owner from 'root' to 'chef'

Chef Client finished, 3 resources updated

Menu

メニュー

アプリケーション

アプリケーション

その他

【メニュー編集】

管理人/副管理人のみ編集できます