事前準備
Chefリポジトリの作成
- Chefのファイルを格納するディレクトリを先に作成しておく。
mkdir chef-repo
cd chef-repo
インストール
ChefとKnife-Zeroのインストール
-
gemコマンドで各パッケージをダウンロード。
・ 各パッケージの説明- chef:構成を管理するツール
- knife-zero:chef-clientを操作するツール
- berkshelf:chefのcookbookを管理するツール
source "https://rubygems.org"
gem 'chef'
gem 'knife-zero'
gem 'berkshelf'
インストールを実行。
sudo bundle install
設定
.chef/knife.rbの作成
.chefディレクトリを作り、その中に以下の内容でknife.rbを作成する。
※Chef Clientを常にローカルモードで実行するため。
vi ~/.chef/knife.rb
local_mode true
Cookbookの作成
knife cookbook create [作成したいプロセス名など] -o ./cookbooks/
作成したCookBookにレシピを記載する。
例:
vi cookbooks/httpd/recipes/default.rb
package “httpd” do
action :install
end
セットアップ対象サーバーにChef Clientをインストールする
knife zero bootstrap [ノードのIPアドレス] -i [認証キーのパス] --sudo
セットアップ対象サーバーがリストに追加されたことを確認する
knife node list
nodeに実行するCookbookを追加
knife node run_list add [ノードのhostname] [プロセス名]
実行
CookBookの実行
knife zero chef_client 'name: [ノードのhostname]' -a name -i [認証キーのパス] --sudo