]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-cookbooks.git/commitdiff
update radosgw recipe
authorAlexandre Marangone <alexandre.marangone@inktank.com>
Mon, 22 Apr 2013 23:59:24 +0000 (16:59 -0700)
committerAlexandre Marangone <alexandre.marangone@inktank.com>
Tue, 4 Jun 2013 17:44:11 +0000 (10:44 -0700)
- 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>
attributes/radosgw.rb
recipes/radosgw.rb
templates/default/s3gw.fcgi.erb [new file with mode: 0644]

index b85bfa24f5616778f90e44b3969c8232d115024c..6bc52789205242b528a38ea2e38026c9454ec66e 100644 (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
index 97a108c866a609e9457b0c8e18aba253b3a97784..7447364fd5b60e2d28d9a3509c8b07e7457b2e64 100644 (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"
+
+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 (file)
index 0000000..c6b684f
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /usr/bin/radosgw -c /etc/ceph/ceph.conf -n <%= @ceph_rgw_client %>