広島ruby勉強会#35 - chef入門
DESCRIPTION
広島Ruby勉強会#35でChefのプレゼンしたときの資料TRANSCRIPT
![Page 1: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/1.jpg)
入門13年11月2日土曜日
![Page 2: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/2.jpg)
自己紹介
• Twitter: @ogatomo• 好きなもの:Emacs, Ruby, AWS, Railsなど
小川 智和(おがわ ともかず)
13年11月2日土曜日
![Page 3: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/3.jpg)
Chefについて
• Opscode社が開発したConfiguration Management Tools
• サーバーの設定に必要なスクリプトや設定ファイルを一元管理
• サーバーの初期設定や設定変更の自動化
13年11月2日土曜日
![Page 4: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/4.jpg)
Chefの構成
13年11月2日土曜日
![Page 5: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/5.jpg)
Chefの構成
13年11月2日土曜日
![Page 6: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/6.jpg)
Chefの構成
13年11月2日土曜日
![Page 7: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/7.jpg)
Chefの構成
13年11月2日土曜日
![Page 8: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/8.jpg)
Chefの構成chef-server
13年11月2日土曜日
![Page 9: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/9.jpg)
Chefの構成chef-server
chef-client13年11月2日土曜日
![Page 10: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/10.jpg)
Chefの構成chef-server
chef-client
knife
13年11月2日土曜日
![Page 11: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/11.jpg)
Chefの役割
apachemysqlrubynginx
等のインストール& 設定
Railsアプリのデプロイ
サーバー自体(CPU,HDD,メモリ)やネットワークの準備
13年11月2日土曜日
![Page 12: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/12.jpg)
Chefの役割
AWSその他Cloud
apachemysqlrubynginx
等のインストール& 設定
Railsアプリのデプロイ
サーバー自体(CPU,HDD,メモリ)やネットワークの準備
13年11月2日土曜日
![Page 13: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/13.jpg)
Chefの役割
AWSその他Cloud
Chefapachemysqlrubynginx
等のインストール& 設定
Railsアプリのデプロイ
サーバー自体(CPU,HDD,メモリ)やネットワークの準備
13年11月2日土曜日
![Page 14: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/14.jpg)
Chefの役割
AWSその他Cloud
Chefapachemysqlrubynginx
等のインストール& 設定
CapistranoRailsアプリのデプロイ
サーバー自体(CPU,HDD,メモリ)やネットワークの準備
13年11月2日土曜日
![Page 15: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/15.jpg)
Chefの役割
AWSその他Cloud
Chefapachemysqlrubynginx
等のインストール& 設定
CapistranoRailsアプリのデプロイ
サーバー自体(CPU,HDD,メモリ)やネットワークの準備
OS等の違いを吸収
13年11月2日土曜日
![Page 16: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/16.jpg)
構築方法
13年11月2日土曜日
![Page 17: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/17.jpg)
各種サーバー準備
先日の広島OSCで、無料クーポン頂きました!
13年11月2日土曜日
![Page 18: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/18.jpg)
chef-server構築chef-server
13年11月2日土曜日
![Page 19: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/19.jpg)
chef-server構築
• Ubuntu 12.04
• スワップ有り(AWSのmicroだと厳しい)
• さくらクラウド
13年11月2日土曜日
![Page 20: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/20.jpg)
chef-server構築http://www.opscode.com/chef/install/
URLコピー
13年11月2日土曜日
![Page 21: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/21.jpg)
chef-server構築• /etc/hostsの127.0.0.1の所に、自サーバーのホスト名を入れておく。
• DNSにサーバーのIPとドメインも設定しておく
$ curl -O コピペしたdebファイルのURL ⏎$ dpkg -i chef-server_11.0.8-1.ubuntu.12.04_amd64.deb ⏎
13年11月2日土曜日
![Page 22: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/22.jpg)
chef-server構築
$ vi /etc/chef-server/chef-server.rb ⏎
nginx['server_name'] = "chef-demo.ogatomo.com"nginx['url'] = "https://chef-demo.ogatomo.com"
$ chef-server-ctl reconfigure ⏎
DNSに設定したURLを以下の設定ファイルに入れておく
13年11月2日土曜日
![Page 23: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/23.jpg)
chef-server構築
• /etc/chef-server/chef-validator.pem
上記ファイルをサーバーからダウンロード(秘密鍵ファイルなので扱い注意!!)
• chef-serverにClientを登録する場合などに必要
13年11月2日土曜日
![Page 24: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/24.jpg)
knifeの構築knife
13年11月2日土曜日
![Page 25: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/25.jpg)
knifeの構築https://chef-serverのURL
Adminにチェック
クリックして管理Client作成
13年11月2日土曜日
![Page 26: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/26.jpg)
knifeの構築秘密鍵の文字列を
全部コピー
13年11月2日土曜日
![Page 27: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/27.jpg)
knifeの構築
.chef├── knife.pem … knifeユーザーの秘密鍵をコピー├── knife.rb … 空のファイルで良い└── validation.pem … chef-serverからDLした chef-validator.pem
以下の階層でディレクトリとファイル作成(場所はどこでも良い)
13年11月2日土曜日
![Page 28: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/28.jpg)
knifeの構築
$ gem install chef ⏎
13年11月2日土曜日
![Page 29: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/29.jpg)
knifeの構築.chefと同じ階層までcdで移動後、初期設定用コマンド実行$ cd /path/to/.chef/../ ⏎$ knife configure ⏎
Overwrite /path/to/.chef/knife.rb? (Y/N) Y ⏎Please enter the chef server URL: [http://MacMini.local:4000] https://chef-serverのURL ⏎Please enter an existing username or clientname for the API: [togawa] knife ⏎Please enter the validation client name: [chef-validator] ⏎Please enter the location of the validation key: [/etc/chef/validation.pem] /path/to/.chef/validation.pem ⏎Please enter the path to a chef repository (or leave blank): ⏎
設定内容を色々聞かれます。
13年11月2日土曜日
![Page 30: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/30.jpg)
knifeの構築
$ knife client list ⏎
chef-validator chef-webui knife
動作確認の為、登録済みClient一覧取得
実行結果:
13年11月2日土曜日
![Page 31: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/31.jpg)
chef-client構築
chef-client13年11月2日土曜日
![Page 32: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/32.jpg)
chef-client構築
# apt-get install ruby1.9.1 ruby1.9.1-dev build-essential ⏎# gem install chef --no-ri ̶no-rdoc ⏎# mkdir /etc/chef
13年11月2日土曜日
![Page 33: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/33.jpg)
chef-client構築
/etc/chef├── client.rb … chef-client用設定ファイル└── validation.pem … chef-serverからDLした chef-validator.pem
以下の階層でディレクトリとファイル作成
13年11月2日土曜日
![Page 34: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/34.jpg)
chef-client構築
chef_server_url "https://chef-serverのURL"node_name "Clientの名称"
/etc/chef/client.rb の内容
13年11月2日土曜日
![Page 35: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/35.jpg)
chef-clientの構築
$ knife client list ⏎
chef-validator chef-webui knife Clientの名称
実行結果:
13年11月2日土曜日
![Page 36: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/36.jpg)
chef-clientの構築
$ knife node list ⏎
Clientの名称実行結果:
13年11月2日土曜日
![Page 37: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/37.jpg)
chef-clientの構築$ knife node edit Clientの名称 -e vi ⏎実行結果(JSON):{ "name": "chef-client01", "chef_environment": "_default", "normal": { "tags": [ ] }, "run_list": [ ], "default": { }, "override": { },………………
chef-clientが収集した環境の情報
(IPアドレスや、OSの種類など)
13年11月2日土曜日
![Page 38: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/38.jpg)
chef-client構築# chef-client ⏎Clientをchef-serverに登録
/etc/chef├── client.rb├── client.pem … 秘密鍵ファイルが生成└── validation.pem
13年11月2日土曜日
![Page 39: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/39.jpg)
Chefの構成完了!chef-server
chef-client
knife
13年11月2日土曜日
![Page 40: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/40.jpg)
Cookbook
13年11月2日土曜日
![Page 41: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/41.jpg)
Cookbookについてサーバーの設定に必要な
スクリプト・ファイルテンプレート類
13年11月2日土曜日
![Page 42: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/42.jpg)
Cookbookについてサーバーの設定に必要な
スクリプト・ファイルテンプレート類
Rubyの設定スクリプト
13年11月2日土曜日
![Page 43: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/43.jpg)
Cookbookについてサーバーの設定に必要な
スクリプト・ファイルテンプレート類
Rubyの設定スクリプトRecipeに渡すパラメータ
13年11月2日土曜日
![Page 44: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/44.jpg)
Cookbookについてサーバーの設定に必要な
スクリプト・ファイルテンプレート類
Rubyの設定スクリプトRecipeに渡すパラメータProvidersに渡すパラメータの定義
13年11月2日土曜日
![Page 45: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/45.jpg)
Cookbookについてサーバーの設定に必要な
スクリプト・ファイルテンプレート類
Rubyの設定スクリプトRecipeに渡すパラメータProvidersに渡すパラメータの定義設定ファイルテンプレートファイルなど。
13年11月2日土曜日
![Page 46: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/46.jpg)
Cookbookについてmy_cookbook├── CHANGELOG.md├── README.md├── attributes├── files├── metadata.rb├── providers├── resources├── recipes└── templates
Rubyの設定スクリプトRecipeに渡すパラメータProvidersに渡すパラメータの定義設定ファイルテンプレートファイルなど。
ディレクトリ構成
13年11月2日土曜日
![Page 47: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/47.jpg)
Cookbook(apache2)インストール&設定するCookbook
13年11月2日土曜日
![Page 48: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/48.jpg)
Cookbook(mysql)インストール&設定するCookbook
13年11月2日土曜日
![Page 49: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/49.jpg)
Cookbook(htpasswd)Recipeに設定内容を書きやすくする為のCookbook
13年11月2日土曜日
![Page 50: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/50.jpg)
Cookbook(htpasswd)Basic認証用パスワードファイルを簡単に定義できる
htpasswd "/etc/nginx/htpassword" do user "foo" password "bar"end
13年11月2日土曜日
![Page 51: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/51.jpg)
Cookbook(htpasswd)Basic認証用パスワードファイルを簡単に定義できる
htpasswd "/etc/nginx/htpassword" do user "foo" password "bar"end
⇡はProvidersに定義されてます
13年11月2日土曜日
![Page 52: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/52.jpg)
Cookbook(sudo)Recipeに設定内容を書きやすくする為のCookbook
13年11月2日土曜日
![Page 53: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/53.jpg)
Cookbook(sudo)sudoの設定が簡単に!
sudo 'tomcat' do user "%tomcat" runas 'app_user' commands ['/etc/init.d/tomcat restart']end
13年11月2日土曜日
![Page 54: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/54.jpg)
Cookbook(sudo)sudoの設定が簡単に!
sudo 'tomcat' do user "%tomcat" runas 'app_user' commands ['/etc/init.d/tomcat restart']end
※設定ミスると/etc/sudoersから大事な設定が消えて、永遠にrootになれなくなるので気をつけましょう。
13年11月2日土曜日
![Page 55: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/55.jpg)
Cookbook(sudo)sudoの設定が簡単に!
sudo 'tomcat' do user "%tomcat" runas 'app_user' commands ['/etc/init.d/tomcat restart']end
※設定ミスると/etc/sudoersから大事な設定が消えて、永遠にrootになれなくなるので気をつけましょう。
13年11月2日土曜日
![Page 56: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/56.jpg)
その他の標準Provider
directory "/tmp/folder" do owner "root" group "root" mode 0755 action :createend
ディレクトリを作ります
13年11月2日土曜日
![Page 57: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/57.jpg)
その他の標準Providerユーザーを作ります
user "admin" do supports :manage_home => true comment "Admin User" uid 1234 gid "users" home "/home/admin" shell "/bin/bash" password "$1$JJsvHslV$szsCjVEroftprNn4JHtDi."end
13年11月2日土曜日
![Page 58: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/58.jpg)
chef-client
13年11月2日土曜日
![Page 59: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/59.jpg)
chef-clientについてchef-server
chef-client
必要なCookbookを取得して実行
13年11月2日土曜日
![Page 60: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/60.jpg)
chef-clientについて$ knife node edit Clientの名称 -e vi ⏎実行結果(JSON):{ "name": "chef-client01", "chef_environment": "_default", "normal": { "tags": [ ] }, "run_list": [ ], "default": { }, "override": { },………………
Clientは自分のnodeのrun_listをもとにcookbookを実行
13年11月2日土曜日
![Page 61: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/61.jpg)
cookbookの準備
$ mkdir cookbooks ⏎$ cd cookbooks ⏎$ git clone https://github.com/opscode-cookbooks/apache2.git ⏎
$ knife cookbook upload apache2 -o ./ ⏎
.chefがある場所に、cookbook置き場を作り、cookbookをアップロード
13年11月2日土曜日
![Page 62: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/62.jpg)
run-listの編集$ knife node edit Clientの名称 -e vi ⏎実行結果(JSON):{ "name": "chef-client01", "chef_environment": "_default", "normal": { "tags": [ ] }, "run_list": [ “recipe[apache2]”, “recipe[apache2::mod_rewrite]” ], "default": { }, "override": { },……………
run_listを編集し、apache2をインストールしてmod_rewriteを有効にする
13年11月2日土曜日
![Page 63: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/63.jpg)
run-listの編集$ knife node edit Clientの名称 -e vi ⏎実行結果(JSON):{ "name": "chef-client01", "chef_environment": "_default", "normal": { "tags": [ ] }, "run_list": [ “recipe[apache2]”, “recipe[apache2::mod_rewrite]” ], "default": { }, "override": { },……………
recipe[cookbook名]orrecipe[cookbook名::recipe名]
13年11月2日土曜日
![Page 64: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/64.jpg)
run-listの編集$ knife node edit Clientの名称 -e vi ⏎実行結果(JSON):{ "name": "chef-client01", "chef_environment": "_default", "normal": { "tags": [ ] }, "run_list": [ “recipe[apache2]”, “recipe[apache2::mod_rewrite]” ], "default": { }, "override": { },……………
recipe[cookbook名] … recipes/default.rbを実行
recipe[cookbook名::recipe名] … recipes/mod_rewrite.rb を実行
13年11月2日土曜日
![Page 65: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/65.jpg)
chef-client実行# chef-client ⏎ Clientにsshログインし、
もしくはPCからknife sshコマンド実行
# knife ssh “name:nodeの名称" -x Linuxユーザ名 "sudo chef-client" -i SSH鍵ファイル -a ipaddress
13年11月2日土曜日
![Page 66: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/66.jpg)
chef-client実行# chef-client ⏎ Clientにsshログインし、
もしくはPCからknife sshコマンド実行
# knife ssh “name:nodeの名称" -x Linuxユーザ名 "sudo chef-client" -i SSH鍵ファイル -a ipaddress
node内のipaddressという値を使って接続
13年11月2日土曜日
![Page 67: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/67.jpg)
DEMO
13年11月2日土曜日
![Page 68: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/68.jpg)
nodeの用途
13年11月2日土曜日
![Page 69: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/69.jpg)
nodeの用途
• run_listに実行するcookbookとレシピを定義
• cookbookに渡すパラメータを変更
• cookbookの処理結果を保存
13年11月2日土曜日
![Page 70: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/70.jpg)
パラメータを変更
• attributes/default.rbの設定値じゃ満足できない
• そもそもデフォルト値だと動かない
↓こんな場合に行います
13年11月2日土曜日
![Page 71: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/71.jpg)
apache2の例{ "name": "chef-client01", "chef_environment": "_default", "normal": { "tags": [ ], "apache": { "prefork": { "startservers" : "10", "minspareservers":"10", "maxspareservers":"10", "serverlimit":"512", "maxclients":"512" } } }, "run_list": [ “recipe[apache2]”, “recipe[apache2::mod_rewrite]” ], …………
confに設定したい値を入れるcookbook内ではnode[:apache][:prefork][:startservers]等の変数が使われてるのでその値をnodeで上書きする
13年11月2日土曜日
![Page 72: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/72.jpg)
処理結果の保存
• cookbookの実行が途中で失敗しても、再実行が行えるようにする。(冪等性ていうらしい)
• 自動作成したユーザーのパスワードなどを保存する。
13年11月2日土曜日
![Page 73: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/73.jpg)
mysqlの例{ "name": "chef-client01", "chef_environment": "_default", "normal": { "tags": [ ], "mysql": { "server_debian_password": “*********************”, "server_root_password": "*********************", "server_repl_password": "*********************" } }, "run_list": [ “recipe[apache2]”, “recipe[apache2::mod_rewrite]” ], …………
結構な機密情報がnodeには保存されます。。
13年11月2日土曜日
![Page 74: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/74.jpg)
nodeのバックアップ方法
# knife node show node名称 ̶format json > backup.json
# knife node from file backup.json
knifeを使ってnodeをバックアップ
nodeのリストア
13年11月2日土曜日
![Page 75: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/75.jpg)
Tips
13年11月2日土曜日
![Page 76: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/76.jpg)
run_listが肥大化した"run_list": [ "recipe[php]", "recipe[apache2]", "recipe[apache2::mod_php5]", "recipe[apache2::mod_ssl]", "recipe[apache2::mod_rewrite]", "recipe[php::module_gd]", "recipe[php::module_mysql]", "recipe[php::module_pgsql]", "recipe[php::module_mbstring]", "recipe[php::module_xml]", "recipe[php::module_mcrypt]" ]
13年11月2日土曜日
![Page 77: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/77.jpg)
run_listが肥大化した"run_list": [ "recipe[php]", "recipe[apache2]", "recipe[apache2::mod_php5]", "recipe[apache2::mod_ssl]", "recipe[apache2::mod_rewrite]", "recipe[php::module_gd]", "recipe[php::module_mysql]", "recipe[php::module_pgsql]", "recipe[php::module_mbstring]", "recipe[php::module_xml]", "recipe[php::module_mcrypt]" ]
同じrun_listはroleを定義しよう
13年11月2日土曜日
![Page 78: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/78.jpg)
roleを定義# knife role create wordpress -e vim ⏎
{ "name": "wordpress", "description": "", "json_class": "Chef::Role", "default_attributes": { }, "override_attributes": { }, "chef_type": "role", "run_list": [], "env_run_lists": { }}
"recipe[php]", "recipe[apache2]", "recipe[apache2::mod_php5]", "recipe[apache2::mod_ssl]", "recipe[apache2::mod_rewrite]", "recipe[php::module_gd]", "recipe[php::module_mysql]", "recipe[php::module_pgsql]", "recipe[php::module_mbstring]", "recipe[php::module_xml]", "recipe[php::module_mcrypt]"
roleのrun_listに設定
13年11月2日土曜日
![Page 79: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/79.jpg)
role設定後
"run_list": [ "role[wordpress]" ]
nodeのrun_listがスッキリします
13年11月2日土曜日
![Page 80: 広島Ruby勉強会#35 - Chef入門](https://reader034.vdocuments.net/reader034/viewer/2022051313/549f8178ac7959454c8b4909/html5/thumbnails/80.jpg)
御清聴ありがとうございました
13年11月2日土曜日