Chef Getting Started メモ
メモと言いつつドキュメントの要約になってしまった.(最近、このパターンが多い)
https://learnchef.opscode.com/quickstart/workstation-setup/
スターターキットに含まれるリポジトリを解凍する
% unzip chef-starter.zip
% cd chef-repo
資格が正しいことを確認する
% knife client list
itomaki-validator
chef リポジトリをセットアップする
% git init .
% git add .
% git commit -m "Initial commit"
[master (root-commit) b9ae7e8] Initial commit
13 files changed, 361 insertions(+), 0 deletions(-)
create mode 100644 .berkshelf/config.json
create mode 100644 .chef/knife.rb
create mode 100644 .gitignore
create mode 100644 Berksfile
create mode 100644 README.md
create mode 100644 Vagrantfile
create mode 100644 chefignore
create mode 100644 cookbooks/starter/attributes/default.rb
create mode 100644 cookbooks/starter/files/default/sample.txt
create mode 100644 cookbooks/starter/metadata.rb
create mode 100644 cookbooks/starter/recipes/default.rb
create mode 100644 cookbooks/starter/templates/default/sample.erb
create mode 100644 roles/starter.rb
コミュニティの apt apache2 cookbook を knife コマンドを用いてダウンロードする.
knife cookbook site install apt
knife cookbook site install apache2
ダウンロードした cookbook を表示する
% ls cookbooks
apache2 apt starter
Create a Simple Cookbook
さっきの例では、コミュニティサイトの力を借りて cookbook を作成した.
node へ設定をブートする前に cookbook の書き方を見ていく.
今回の例で作成するのはごく簡単な cookbook である.
この cookbook では, alias と環境変数を設定する.
まずはコミュニティサイトから magic_shell をインストールする.
knife cookbook site install magic_shell
magic_shell はコマンド alias を設定するためのユーティリティ??
新しい cookbook を作成する.
knife cookbook create aliases
knife cookbook create コマンドは, 新しい cookbook の雛形を作成する.
すると, cookbooks ディレクトリに新しいディレクトリが作成されている.
% ls cookbooks
aliases apache2 apt magic_shell starter
metadata.rb に magic_shell への依存関係を定義する.
name 'aliases'
maintainer 'YOUR_COMPANY_NAME'
maintainer_email 'YOUR_EMAIL'
license 'All rights reserved'
description 'Installs/Configures aliases'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '0.1.0'
depends 'magic_shell'
レシピを書く cookbooks/aliases/recipes/default.rb
# Alias `h` to go home
magic_shell_alias 'h' do
command 'cd ~'
end
# Alias `sites` to cd into apache
magic_shell_alias 'sites' do
command "cd #{node['apache']['dir']}/sites-enabled"
end
# Set Nano as the default editor
magic_shell_environment 'EDITOR' do
value 'nano'
end
これらの設定をノードへダウンロードするためには, エンタープライズ Chef サーバへ Cookbook をアップロードしなければならない.
% knife cookbook upload --all
Uploading aliases [0.1.0]
Uploading apache2 [1.8.4]
Uploading apt [2.3.0]
Uploading magic_shell [0.3.2]
Uploading starter [1.0.0]
Uploaded all cookbooks.