More Related Content Similar to 広島Ruby勉強会#35 - Chef入門 (20) 広島Ruby勉強会#35 - Chef入門29. 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日土曜日
37. chef-clientの構築
$ knife node edit Clientの名称 -e vi
実行結果(JSON):
{
"name": "chef-client01",
"chef_environment": "_default",
"normal": {
"tags": [
]
},
"run_list": [
],
"default": {
},
"override": {
},
………
……
…
13年11月2日土曜日
chef-clientが収集した
環境の情報
(IPアドレスや、OSの種類など)
60. 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日土曜日
62. 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": {
},
………
……
13年11月2日土曜日
run_listを編集し、
apache2をインストールして
mod_rewriteを有効にする
63. 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": {
},
………
……
13年11月2日土曜日
recipe[cookbook名]
or
recipe[cookbook名::recipe名]
64. 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": {
},
………
……
13年11月2日土曜日
recipe[cookbook名]
… recipes/default.rbを実行
recipe[cookbook名::recipe名]
… recipes/mod_rewrite.rb
を実行
71. 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]
],
……
……
13年11月2日土曜日
confに設定したい値を入れる
cookbook内では
node[:apache][:prefork][:startservers]
等の変数が使われてるので
その値をnodeで上書きする
76. 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日土曜日
77. 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日土曜日
同じrun_listは
roleを定義しよう
78. roleを定義
# knife role create wordpress -e vim
{
"name": "wordpress",
"description": "",
"json_class": "Chef::Role",
roleのrun_listに設定
"recipe[php]",
"default_attributes": {
"recipe[apache2]",
},
"recipe[apache2::mod_php5]",
"override_attributes": {
"recipe[apache2::mod_ssl]",
},
"recipe[apache2::mod_rewrite]",
"chef_type": "role",
"recipe[php::module_gd]",
"run_list": [
"recipe[php::module_mysql]",
],
"recipe[php::module_pgsql]",
"env_run_lists": {
}
}
13年11月2日土曜日
"recipe[php::module_mbstring]",
"recipe[php::module_xml]",
"recipe[php::module_mcrypt]"