Chef
Chef: Enabling the Coded Enterprise through Infrastructure, Security and Application Automation
サーバ構成管理ツール(IaC)
Pull型であり、管理対象サーバにパッケージインストールが必要
Chef Server / Chef Client: クライアントサーバモデル
Chef Zero: Workstation側で使用し、クライアントサーバモデルを自動的に構成する
Chef Solo: スタンドアロンモデル、廃止予定
Knife: Chefのコマンドであり、chef-repoやChefサーバへ操作を行う
Workstation: サーバ管理クライアント
Node: 管理対象サーバ
Cookbook: Recipeをまとめる入れ物
Recipe: Ruby形式で記述する。記述した順番に処理が流れる。AnsibleだとPlaybookに該当
Commands
cookbook作成
code:bash
$ knife cookbook create test -o cookbooks
** Creating cookbook test
** Creating README for cookbook: test
** Creating CHANGELOG for cookbook: test
** Creating metadata for cookbook: test
# 作成されたcookbookの確認
$ ls cookbooks/test
CHANGELOG.md attributes/ files/ metadata.rb recipes/ templates/
README.md definitions/ libraries/ providers/ resources/
recipe作成
code:cookbooks/test/recipes/default.rb
log "Hello Chef"
directory "/tmp/foo" do # Dir作成
owner "root"
group "root"
mode 0655
action :create
end
使い方
code:bash
$ sudo chef-solo -o test
Starting Chef Client, version 11.6.0
2013-12-07T20:28:50+09:00 WARN: Run List override has been provided.
2013-12-07T20:28:50+09:00 WARN: Original Run List: []
2013-12-07T20:28:50+09:00 WARN: Overridden Run List: [recipetest]
Compiling Cookbooks...
Converging 2 resources
Recipe: test::default
* logHello Chef action write
* directory/tmp/foo action create
- create new directory /tmp/foo
- change mode from '' to '0655'
- change owner from '' to 'root'
Chef Client finished, 2 resources updated
その他
code:bash
knife environment from file ${json}
knife node list
knife client list
Reference
Chef - FreeBSD入門
構成管理ツールChefを使ってみよう|ConoHa VPSサポート
#devops