From 934e91ec0f7ec91aa2b239da2efba5629df17190 Mon Sep 17 00:00:00 2001 From: Guilhem Lettron Date: Tue, 26 Feb 2013 12:38:16 +0100 Subject: [PATCH 1/3] Manage a standalone installation (without apache2) Improve apache2 recipe --- attributes/radosgw.rb | 1 + recipes/radosgw.rb | 53 +++++++++------------------------- recipes/radosgw_apache2.rb | 32 ++++++++++++++++++++ templates/default/rgw.conf.erb | 8 ++--- 4 files changed, 50 insertions(+), 44 deletions(-) create mode 100644 recipes/radosgw_apache2.rb diff --git a/attributes/radosgw.rb b/attributes/radosgw.rb index 36aea39..bc7b68c 100644 --- a/attributes/radosgw.rb +++ b/attributes/radosgw.rb @@ -20,3 +20,4 @@ default["ceph"]["radosgw"]["api_fqdn"] = "localhost" default["ceph"]["radosgw"]["admin_email"] = "admin@example.com" default["ceph"]["radosgw"]["rgw_addr"] = "*:80" default["ceph"]["radosgw"]["rgw_port"] = false +default["ceph"]["radosgw"]["webserver_companion"] = "apache2" #can be false diff --git a/recipes/radosgw.rb b/recipes/radosgw.rb index 4e4e263..6cbe46d 100644 --- a/recipes/radosgw.rb +++ b/recipes/radosgw.rb @@ -17,11 +17,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -include_recipe "apache2" - packages = %w{ - radosgw - libapache2-mod-fastcgi + radosgw } if node['ceph']['install_debug'] @@ -32,48 +29,24 @@ if node['ceph']['install_debug'] end packages.each do |pkg| - package pkg do - action :upgrade - end + package pkg do + action :upgrade + end end cookbook_file "/etc/init.d/radosgw" do - source "radosgw" - mode 0755 - owner "root" - group "root" + source "radosgw" + mode 0755 + owner "root" + group "root" end service "radosgw" do - service_name "radosgw" - supports :restart => true - action[:enable,:start] + service_name "radosgw" + supports :restart => true + action[:enable,:start] end -apache_module "fastcgi" do - conf true +if node["ceph"]["radosgw"]["webserver_companion"] + include_recipe "ceph::radosgw_#{node["ceph"]["radosgw"]["webserver_companion"]}" end - -apache_module "rewrite" do - conf false -end - -template "/etc/apache2/sites-available/rgw.conf" do - source "rgw.conf.erb" - mode 0400 - owner "root" - group "root" - variables( - :ceph_api_fqdn => node['ceph']['radosgw']['api_fqdn'], - :ceph_admin_email => node['ceph']['radosgw']['admin_email'], - :ceph_rgw_addr => node['ceph']['radosgw']['rgw_addr'] - ) - if ::File.exists?("#{node['apache']['dir']}/sites-enabled/rgw.conf") - notifies :restart, "service[apache2]" - end -end - -apache_site "rgw.conf" do - enable enable_setting -end - diff --git a/recipes/radosgw_apache2.rb b/recipes/radosgw_apache2.rb new file mode 100644 index 0000000..c6c23a3 --- /dev/null +++ b/recipes/radosgw_apache2.rb @@ -0,0 +1,32 @@ +# +# Author:: Kyle Bader +# Cookbook Name:: ceph +# Recipe:: radosgw_apache2 +# +# Copyright 2011, DreamHost Web Hosting +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +include_recipe "apache2" +include_recipe "apache2::mod_fastcgi" + +apache_module "rewrite" do + conf false +end + +web_app "rgw" do + template "rgw.conf.erb" + server_name node['ceph']['radosgw']['api_fqdn'] + admin_email node['ceph']['radosgw']['admin_email'] + ceph_rgw_addr node['ceph']['radosgw']['rgw_addr'] +end diff --git a/templates/default/rgw.conf.erb b/templates/default/rgw.conf.erb index 9a22c7a..3bd8e5d 100644 --- a/templates/default/rgw.conf.erb +++ b/templates/default/rgw.conf.erb @@ -1,15 +1,15 @@ <% if node['ceph']['radosgw']['rgw_port'] -%> FastCgiExternalServer /var/www/dummyradosgw.fcgi -host 127.0.0.1:<%= node['ceph']['radosgw']['rgw_port'] %> <% else -%> -FastCgiExternalServer /var/www/dummyradosgw.fcgi -socket /var/run/ceph/radosgw.client.radosgw.<%= node[:hostname] %> +FastCgiExternalServer /var/www/dummyradosgw.fcgi -socket /var/run/ceph/radosgw.client.radosgw.<%= node['hostname'] %> <% end -%> LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" proxy_combined LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" proxy_debug -> - ServerName <%= @ceph_api_fqdn %> - ServerAdmin <%= @ceph_admin_email %> +> + ServerName <%= @params[:server_name] %> + ServerAdmin <%= node["ceph"]["radosgw"]["admin_email"] %> DocumentRoot /var/www/ RewriteEngine On From cdc0c005c3ba0dec423970c48365ef13d4e38fd8 Mon Sep 17 00:00:00 2001 From: Guilhem Lettron Date: Tue, 26 Feb 2013 12:47:55 +0100 Subject: [PATCH 2/3] add dependency to apache2 v1.1.12 It add mod_fastcgi --- metadata.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.rb b/metadata.rb index f28a022..f740cc8 100644 --- a/metadata.rb +++ b/metadata.rb @@ -5,5 +5,5 @@ license "Apache 2.0" description "Installs/Configures the Ceph distributed filesystem" long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) version "0.1.0" -depends "apache2" +depends "apache2", ">= 1.1.12" depends "apt" From 273bfbce9f580ae79fc8a4b6d464e740034bd09d Mon Sep 17 00:00:00 2001 From: Guilhem Lettron Date: Tue, 9 Apr 2013 14:52:12 +0200 Subject: [PATCH 3/3] remove sysvinit script for radosgw --- files/default/radosgw | 38 -------------------------------------- recipes/radosgw.rb | 7 ------- 2 files changed, 45 deletions(-) delete mode 100755 files/default/radosgw diff --git a/files/default/radosgw b/files/default/radosgw deleted file mode 100755 index 4c01c2b..0000000 --- a/files/default/radosgw +++ /dev/null @@ -1,38 +0,0 @@ -#! /bin/sh -### BEGIN INIT INFO -# Provides: single -# Required-Start: $remote_fs $named $network $time -# Required-Stop: $remote_fs $named $network $time -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: radosgw -### END INIT INFO - -PATH=/sbin:/bin:/usr/bin - -. /lib/lsb/init-functions - -CLIENT_NAME=client.rgw-`hostname | sed 's/\..*//g'` -USER=www-data - - -do_start () { - su $USER -c "radosgw -c /etc/ceph/ceph.conf -n $CLIENT_NAME >> /var/log/radosgw/radosgw.log 2>&1 &" -} - -case "$1" in - start) - do_start - ;; - restart|reload|force-reload) - echo "Error: argument '$1' not supported" >&2 - exit 3 - ;; - stop) - # No-op - ;; - *) - echo "Usage: $0 start|stop" >&2 - exit 3 - ;; -esac diff --git a/recipes/radosgw.rb b/recipes/radosgw.rb index 6cbe46d..2c17f31 100644 --- a/recipes/radosgw.rb +++ b/recipes/radosgw.rb @@ -34,13 +34,6 @@ packages.each do |pkg| end end -cookbook_file "/etc/init.d/radosgw" do - source "radosgw" - mode 0755 - owner "root" - group "root" -end - service "radosgw" do service_name "radosgw" supports :restart => true