update radosgw recipe

- Create /etc/ceph/ dir
- Create/Update ceph.conf with radosgw client
- Support upstart and init
- Create radosgw client keyring

Signed-off-by: Alexandre Marangone <alexandre.marangone@inktank.com>
This commit is contained in:
Alexandre Marangone 2013-04-22 16:59:24 -07:00
parent 58f5c83b82
commit 79566ef8ce
3 changed files with 51 additions and 7 deletions

View File

@ -22,3 +22,9 @@ default["ceph"]["radosgw"]["rgw_addr"] = "*:80"
default["ceph"]["radosgw"]["rgw_port"] = false
default["ceph"]["radosgw"]["webserver_companion"] = "apache2" #can be false
default['ceph']["radosgw"]['use_apache_fork'] = true
case node['platform']
when 'ubuntu'
default["ceph"]["radosgw"]["init_style"] = "upstart"
else
default["ceph"]["radosgw"]["init_style"] = "sysvinit"
end

View File

@ -41,12 +41,48 @@ packages.each do |pkg|
end
end
service "radosgw" do
service_name "radosgw"
supports :restart => true
action[:enable,:start]
end
include_recipe "ceph::conf"
if node["ceph"]["radosgw"]["webserver_companion"]
include_recipe "ceph::radosgw_#{node["ceph"]["radosgw"]["webserver_companion"]}"
unless File.exists?("/var/lib/ceph/radosgw/ceph-radosgw.#{node['hostname']}/done")
if node["ceph"]["radosgw"]["webserver_companion"]
include_recipe "ceph::radosgw_#{node["ceph"]["radosgw"]["webserver_companion"]}"
end
directory "/etc/ceph" do
owner "root"
group "root"
mode "0644"
action :create
end
ruby_block "create rados gateway client key" do
block do
keyring = %x[ ceph auth get-or-create client.radosgw.#{node['hostname']} osd 'allow rwx' mon 'allow r' --name mon. --key='#{node["ceph"]["monitor-secret"]}' ]
keyfile = File.new("/etc/ceph/ceph.client.radosgw.#{node['hostname']}.keyring", "w")
keyfile.puts(keyring)
keyfile.close
end
end
file "/var/lib/ceph/radosgw/ceph-radosgw.#{node['hostname']}/done" do
action :create
end
service "radosgw" do
case node["ceph"]["radosgw"]["init_style"]
when "upstart"
service_name "radosgw-all-starter"
provider Chef::Provider::Service::Upstart
else
if node['platform'] == "debian"
service_name "radosgw"
else
service_name "ceph-radosgw"
end
end
supports :restart => true
action [ :enable, :start ]
end
else
Log.info("Rados Gateway already deployed")
end

View File

@ -0,0 +1,2 @@
#!/bin/sh
exec /usr/bin/radosgw -c /etc/ceph/ceph.conf -n <%= @ceph_rgw_client %>