recipes/default.rb
21 if node['platform_family'] == "rhel" and node['platform_version'].to_i < 6
22 include_recipe "yum::epel"
23 end
24
25 package "memcached" do
26 action :install
27 end
28
29 package "libmemcache-dev" do
30 case node['platform_family']
31 when "rhel", "fedora"
32 package_name "libmemcached-devel"
33 when "smartos"
34 package_name "libmemcached"
35 else
36 package_name "libmemcache-dev"
37 end
38 action :install
39 end
- 21 行目から... ohai で取得した platform_family をチェックして rhel = RedHat 系 で且つ version が 6 以下の node であれば yum::epel レシピを include する
- 25 行目は単純な memcached のインストール
- 29 行目以降、libmemcache-dev パッケージの導入に際して 21 行目同様に OS の環境をチェックしてパッケージ名を調節している
41 service "memcached" do
42 action :nothing
43 supports :status => true, :start => true, :stop => true, :restart => true
44 end
- 言わずもがな service の自動起動を設定する
- ただし、action :nothing となっているので後述の設定ファイルの設置に記載されている notifies :restart にて実行される
46 case node['platform_family']
47 when "rhel", "fedora"
48 template "/etc/sysconfig/memcached" do
49 source "memcached.sysconfig.erb"
- 略 -
53 variables(
54 :listen => node['memcached']['listen'],
- 略 -
58 :memory => node['memcached']['memory']
59 )
60 notifies :restart, "service[memcached]"
61 end
62 when "smartos"
63
64
65 service "memcached" do
66 action :enable
67 end
68 else
69 template "/etc/memcached.conf" do
70 source "memcached.conf.erb"
- 略 -
74 variables(
75 :listen => node['memcached']['listen'],
- 略 -
79 :memory => node['memcached']['memory']
80 )
81 notifies :restart, "service[memcached]"
82 end
83 end
- パッケージ導入と同じく、ohai の platform_family の値を参考に memcached 自体の設定ファイル設定を行なっている
- 設定ファイルの中身は attribute に設定した内容を temlate の variables にて上書きをしている
- 設定ファイルを設置した後、`notifies :restart, "service[memcached]"` で memacached のサービスを再起動している
- 途中に `when "smartos"` とあるが、smartos ってそもそも何だろ?って話なので、別途で調査をする