From: Alexandre Marangone Date: Mon, 22 Apr 2013 23:59:24 +0000 (-0700) Subject: update radosgw recipe X-Git-Tag: v0.2.0~25^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=79566ef8ce5834ad5fefa525fefb720faab04e81;p=ceph-cookbooks.git 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 --- diff --git a/attributes/radosgw.rb b/attributes/radosgw.rb index b85bfa2..6bc5278 100644 --- a/attributes/radosgw.rb +++ b/attributes/radosgw.rb @@ -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 diff --git a/recipes/radosgw.rb b/recipes/radosgw.rb index 97a108c..7447364 100644 --- a/recipes/radosgw.rb +++ b/recipes/radosgw.rb @@ -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" + +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 -if node["ceph"]["radosgw"]["webserver_companion"] - include_recipe "ceph::radosgw_#{node["ceph"]["radosgw"]["webserver_companion"]}" + 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 diff --git a/templates/default/s3gw.fcgi.erb b/templates/default/s3gw.fcgi.erb new file mode 100644 index 0000000..c6b684f --- /dev/null +++ b/templates/default/s3gw.fcgi.erb @@ -0,0 +1,2 @@ +#!/bin/sh +exec /usr/bin/radosgw -c /etc/ceph/ceph.conf -n <%= @ceph_rgw_client %>