Initial Import to Public Repository
This commit is contained in:
1
README.md
Normal file
1
README.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
These are incomplete, use with caution. They have pulled from a working configuration using Debian. They will require work for other distributions. They also assume your package manager (apt-get, etc) are already configured for a ceph repository.
|
||||||
0
admin-tools/README.rdoc
Normal file
0
admin-tools/README.rdoc
Normal file
6
admin-tools/metadata.rb
Normal file
6
admin-tools/metadata.rb
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
maintainer "Kyle Bader"
|
||||||
|
maintainer_email "kyle.bader@dreamhost.com"
|
||||||
|
license "Apache 2.0"
|
||||||
|
description "Installs the parted disk utility"
|
||||||
|
long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc'))
|
||||||
|
version "0.0.1"
|
||||||
37
admin-tools/recipes/default.rb
Normal file
37
admin-tools/recipes/default.rb
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
#
|
||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: admin-tools
|
||||||
|
# Recipe:: default
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
packages = %w{
|
||||||
|
git-core
|
||||||
|
gdb
|
||||||
|
inotail
|
||||||
|
iotop
|
||||||
|
iftop
|
||||||
|
iptraf
|
||||||
|
pdsh
|
||||||
|
tcpdump
|
||||||
|
strace
|
||||||
|
sysstat
|
||||||
|
}
|
||||||
|
|
||||||
|
packages.each do |pkg|
|
||||||
|
package pkg do
|
||||||
|
action :upgrade
|
||||||
|
end
|
||||||
|
end
|
||||||
0
btrfs/README.rdoc
Normal file
0
btrfs/README.rdoc
Normal file
6
btrfs/metadata.rb
Normal file
6
btrfs/metadata.rb
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
maintainer "Kyle Bader"
|
||||||
|
maintainer_email "kyle.bader@dreamhost.com"
|
||||||
|
license "Apache 2.0"
|
||||||
|
description "Installs tools for BTRFS filesystems"
|
||||||
|
long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc'))
|
||||||
|
version "0.0.1"
|
||||||
29
btrfs/recipes/default.rb
Normal file
29
btrfs/recipes/default.rb
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#
|
||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: btrfs
|
||||||
|
# Recipe:: default
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
packages = %w{
|
||||||
|
btrfs-tools
|
||||||
|
btrfs-tools-dbg
|
||||||
|
}
|
||||||
|
|
||||||
|
packages.each do |pkg|
|
||||||
|
package pkg do
|
||||||
|
action :upgrade
|
||||||
|
end
|
||||||
|
end
|
||||||
129
ceph/README.md
Normal file
129
ceph/README.md
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
DESCRIPTION
|
||||||
|
===========
|
||||||
|
|
||||||
|
Installs and configures Ceph, a distributed network storage and filesystem
|
||||||
|
designed to provide excellent performance, reliability, and scalability.
|
||||||
|
|
||||||
|
REQUIREMENTS
|
||||||
|
============
|
||||||
|
|
||||||
|
Platform
|
||||||
|
--------
|
||||||
|
|
||||||
|
Tested as working:
|
||||||
|
* Debian Squeeze (6.x)
|
||||||
|
|
||||||
|
Cookbooks
|
||||||
|
---------
|
||||||
|
|
||||||
|
The ceph cookbook requires the following cookbooks from Opscode:
|
||||||
|
|
||||||
|
https://github.com/opscode/cookbooks
|
||||||
|
|
||||||
|
* apache2
|
||||||
|
|
||||||
|
Also required are the following cookbooks New Dream Network (DreamHost.com):
|
||||||
|
|
||||||
|
https://github.com/NewDreamNetwork/ceph-cookbooks
|
||||||
|
|
||||||
|
* btrfs
|
||||||
|
* parted
|
||||||
|
|
||||||
|
|
||||||
|
ATTRIBUTES
|
||||||
|
==========
|
||||||
|
|
||||||
|
Ceph Rados Gateway
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* node[:ceph][:radosgw][:api_fqdn]
|
||||||
|
* node[:ceph][:radosgw][:admin_email]
|
||||||
|
* node[:ceph][:radosgw][:rgw_addr]
|
||||||
|
|
||||||
|
Ceph Balancer
|
||||||
|
-------------
|
||||||
|
|
||||||
|
*
|
||||||
|
*
|
||||||
|
|
||||||
|
TEMPLATES
|
||||||
|
=========
|
||||||
|
|
||||||
|
USAGE
|
||||||
|
=====
|
||||||
|
|
||||||
|
Ceph cluster design is beyond the scope of this README, please turn to the
|
||||||
|
public wiki, mailing lists, visit our IRC channel or Ceph Support page:
|
||||||
|
|
||||||
|
http://ceph.newdream.net/wiki/
|
||||||
|
http://ceph.newdream.net/mailing-lists-and-irc/
|
||||||
|
http://www.cephsupport.com/
|
||||||
|
|
||||||
|
This diagram helps visualize recipe inheritence of the ceph cookbook recipes:
|
||||||
|
|
||||||
|
<diagram url>
|
||||||
|
|
||||||
|
Ceph Monitor
|
||||||
|
------------
|
||||||
|
|
||||||
|
Ceph monitor nodes should use the ceph::mon recipe.
|
||||||
|
|
||||||
|
Includes:
|
||||||
|
|
||||||
|
* ceph::default
|
||||||
|
* ceph::rados-rest
|
||||||
|
|
||||||
|
Ceph Metadata Server
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Ceph metadata server nodes should use the ceph::mds recipe.
|
||||||
|
|
||||||
|
Includes:
|
||||||
|
|
||||||
|
* ceph::default
|
||||||
|
|
||||||
|
Ceph OSD
|
||||||
|
--------
|
||||||
|
|
||||||
|
Ceph OSD nodes should use the ceph::osd recipe
|
||||||
|
|
||||||
|
Includes:
|
||||||
|
|
||||||
|
* ceph::default
|
||||||
|
|
||||||
|
Ceph Rados Gateway
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Ceph Rados Gateway nodes should use the ceph::radosgw recipe
|
||||||
|
|
||||||
|
Includes:
|
||||||
|
|
||||||
|
* ceph::rados-rest
|
||||||
|
|
||||||
|
Ceph Balancer
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Ceph Balancer nodes should use the ceph::balancer recipe
|
||||||
|
|
||||||
|
Includes:
|
||||||
|
|
||||||
|
*
|
||||||
|
|
||||||
|
LICENSE AND AUTHORS
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Author: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
|
||||||
|
* 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.
|
||||||
22
ceph/attributes/radosgw.rb
Normal file
22
ceph/attributes/radosgw.rb
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#
|
||||||
|
# Cookbook Name:: ceph
|
||||||
|
# Attributes:: radosgw
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
default["ceph"]["radosgw"]["api_fqdn"] = "127.0.0.1"
|
||||||
|
default["ceph"]["radosgw"]["admin-email"] = "admin@example.com"
|
||||||
|
default["ceph"]["radosgw"]["rgw_addr"] = "*:80"
|
||||||
|
|
||||||
38
ceph/files/default/radosgw
Executable file
38
ceph/files/default/radosgw
Executable file
@@ -0,0 +1,38 @@
|
|||||||
|
#! /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
|
||||||
9
ceph/metadata.rb
Normal file
9
ceph/metadata.rb
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
maintainer "Kyle Bader"
|
||||||
|
maintainer_email "kyle.bader@dreamhost.com"
|
||||||
|
license "Apache 2.0"
|
||||||
|
description "Installs/Configures the Ceph distributed filesystem"
|
||||||
|
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
||||||
|
version "0.0.10"
|
||||||
|
depends "apache2"
|
||||||
|
depends "btrfs"
|
||||||
|
depends "parted"
|
||||||
0
ceph/providers/mkcephfs.rb
Normal file
0
ceph/providers/mkcephfs.rb
Normal file
30
ceph/recipes/default.rb
Normal file
30
ceph/recipes/default.rb
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#
|
||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: ceph
|
||||||
|
# Recipe:: default
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
packages = %w{
|
||||||
|
ceph
|
||||||
|
ceph-dbg
|
||||||
|
libceph1
|
||||||
|
}
|
||||||
|
|
||||||
|
packages.each do |pkg|
|
||||||
|
package pkg do
|
||||||
|
action :upgrade
|
||||||
|
end
|
||||||
|
end
|
||||||
20
ceph/recipes/mds.rb
Normal file
20
ceph/recipes/mds.rb
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#
|
||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: ceph
|
||||||
|
# Recipe:: mds
|
||||||
|
#
|
||||||
|
# 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 "ceph::default"
|
||||||
34
ceph/recipes/mon.rb
Normal file
34
ceph/recipes/mon.rb
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
#
|
||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: ceph
|
||||||
|
# Recipe:: mon
|
||||||
|
#
|
||||||
|
# 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 "ceph::default"
|
||||||
|
include_recipe "ceph::rados-rest"
|
||||||
|
|
||||||
|
packages = %w{
|
||||||
|
librbd1
|
||||||
|
ceph-client-tools
|
||||||
|
ceph-client-tools-dbg
|
||||||
|
}
|
||||||
|
|
||||||
|
packages.each do |pkg|
|
||||||
|
package pkg do
|
||||||
|
version = node['ceph']['version']
|
||||||
|
action :upgrade
|
||||||
|
end
|
||||||
|
end
|
||||||
22
ceph/recipes/osd.rb
Normal file
22
ceph/recipes/osd.rb
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#
|
||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: ceph
|
||||||
|
# Recipe:: osd
|
||||||
|
#
|
||||||
|
# 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 "btrfs"
|
||||||
|
include_recipe "parted"
|
||||||
|
include_recipe "ceph::default"
|
||||||
25
ceph/recipes/oss.rb
Normal file
25
ceph/recipes/oss.rb
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#
|
||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: ceph
|
||||||
|
# Recipe:: oss
|
||||||
|
#
|
||||||
|
# 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 "ceph::rados-rest"
|
||||||
|
|
||||||
|
package "obsync" do
|
||||||
|
version = node['ceph']['version']
|
||||||
|
action :install
|
||||||
|
end
|
||||||
33
ceph/recipes/rados-rest.rb
Normal file
33
ceph/recipes/rados-rest.rb
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
#
|
||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: ceph
|
||||||
|
# Recipe:: rados-client
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
packages = %w{
|
||||||
|
radosgw
|
||||||
|
radosgw-dbg
|
||||||
|
librados2
|
||||||
|
librgw1
|
||||||
|
}
|
||||||
|
|
||||||
|
packages.each do |pkg|
|
||||||
|
package pkg do
|
||||||
|
version = node['ceph']['version']
|
||||||
|
action :upgrade
|
||||||
|
end
|
||||||
|
end
|
||||||
78
ceph/recipes/radosgw.rb
Normal file
78
ceph/recipes/radosgw.rb
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
#
|
||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: ceph
|
||||||
|
# Recipe:: radosgw
|
||||||
|
#
|
||||||
|
# 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 "ceph::rados-rest"
|
||||||
|
|
||||||
|
packages = %w{
|
||||||
|
apache2
|
||||||
|
apache2-mpm-worker
|
||||||
|
apache2-utils
|
||||||
|
apache2.2-bin
|
||||||
|
apache2.2-common
|
||||||
|
libapache2-mod-fastcgi
|
||||||
|
}
|
||||||
|
|
||||||
|
include_recipe "apache2"
|
||||||
|
|
||||||
|
packages.each do |pkg|
|
||||||
|
package pkg do
|
||||||
|
action :upgrade
|
||||||
|
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
|
||||||
|
action[:enable,:start]
|
||||||
|
end
|
||||||
|
|
||||||
|
apache_module "fastcgi" do
|
||||||
|
conf true
|
||||||
|
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][:api_fqdn],
|
||||||
|
:ceph_admin_email => node[:ceph][:admin_email],
|
||||||
|
:ceph_rgw_addr => node[:ceph][: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
|
||||||
|
|
||||||
3
ceph/templates/default/apache-pin.erb
Normal file
3
ceph/templates/default/apache-pin.erb
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
Package: <%= @package %>
|
||||||
|
Pin: version <%= node[:ceph][:apache2_version] %>
|
||||||
|
Pin-Priority: 1001
|
||||||
5
ceph/templates/default/mods/fastcgi.conf.erb
Normal file
5
ceph/templates/default/mods/fastcgi.conf.erb
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<IfModule mod_fastcgi.c>
|
||||||
|
AddHandler fastcgi-script .fcgi
|
||||||
|
#FastCgiWrapper /usr/lib/apache2/suexec
|
||||||
|
FastCgiIpcDir /var/lib/apache2/fastcgi
|
||||||
|
</IfModule>
|
||||||
3
ceph/templates/default/pin.erb
Normal file
3
ceph/templates/default/pin.erb
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
Package: <%= @package %>
|
||||||
|
Pin: version <%= node[:ceph][:version] %>
|
||||||
|
Pin-Priority: 1001
|
||||||
40
ceph/templates/default/rgw.conf.erb
Normal file
40
ceph/templates/default/rgw.conf.erb
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
FastCgiExternalServer /var/www/s3gw.fcgi -socket /var/run/ceph/radosgw.client.rgw-<%= node[:hostname] %>
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
<VirtualHost <%= @ceph_rgw_addr %>>
|
||||||
|
ServerName <%= @ceph_api_fqdn %>
|
||||||
|
ServerAdmin <%= @ceph_admin_email %>
|
||||||
|
DocumentRoot /var/www/
|
||||||
|
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteRule ^/(.*) /s3gw.fcgi?params=$1&%{QUERY_STRING} [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
|
||||||
|
|
||||||
|
<IfModule mod_fastcgi.c>
|
||||||
|
<Directory /var/www/>
|
||||||
|
Options +ExecCGI
|
||||||
|
AllowOverride All
|
||||||
|
SetHandler fastcgi-script
|
||||||
|
Order allow,deny
|
||||||
|
Allow from all
|
||||||
|
AuthBasicAuthoritative Off
|
||||||
|
</Directory>
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
SetEnv RGW_DNS_NAME "<%= @ceph_api_fqdn %>"
|
||||||
|
SetEnv RGW_LOG_LEVEL 20
|
||||||
|
SetEnv RGW_PRINT_CONTINUE "yes"
|
||||||
|
SetEnv RGW_OPENSTACK_URL "http://<%= @ceph_api_fqdn %>"
|
||||||
|
SetEnv RGW_OPENSTACK_URL_PREFIX "swift"
|
||||||
|
SetEnv RGW_REMOTE_ADDR_PARAM "X-Forwarded-For"
|
||||||
|
|
||||||
|
SetEnv CEPH_ARGS "-n client.rgw-<%= node[:hostname] %>"
|
||||||
|
SetEnv RGW_SHOULD_LOG "yes"
|
||||||
|
|
||||||
|
AllowEncodedSlashes On
|
||||||
|
|
||||||
|
ErrorLog /var/log/apache2/error.log
|
||||||
|
CustomLog /var/log/apache2/sssrgw-access.log proxy_combined
|
||||||
|
ServerSignature Off
|
||||||
|
</VirtualHost>
|
||||||
0
collectd/README.rdoc
Normal file
0
collectd/README.rdoc
Normal file
6
collectd/metadata.rb
Normal file
6
collectd/metadata.rb
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
maintainer "Kyle Bader"
|
||||||
|
maintainer_email "kyle.bader@dreamhost.com"
|
||||||
|
license "Apache 2.0"
|
||||||
|
description "Installs and configures collectd for Ceph"
|
||||||
|
long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc'))
|
||||||
|
version "0.0.7"
|
||||||
60
collectd/recipes/ceph-mon.rb
Normal file
60
collectd/recipes/ceph-mon.rb
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: collectd
|
||||||
|
# Recipe:: ceph-mon
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
packages = %w{
|
||||||
|
collectd
|
||||||
|
collectd-core
|
||||||
|
}
|
||||||
|
|
||||||
|
packages.each do |pkg|
|
||||||
|
package pkg do
|
||||||
|
action :upgrade
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
service "collectd" do
|
||||||
|
service_name "collectd"
|
||||||
|
supports :restart => true
|
||||||
|
end
|
||||||
|
|
||||||
|
directories = %w{
|
||||||
|
/etc/collectd
|
||||||
|
/var/lib/collectd
|
||||||
|
/var/lib/collectd/rrd
|
||||||
|
}
|
||||||
|
|
||||||
|
directories.each do |dir|
|
||||||
|
directory dir do
|
||||||
|
action :create
|
||||||
|
mode 0755
|
||||||
|
owner "root"
|
||||||
|
group "root"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
template "/etc/collectd/collectd.conf" do
|
||||||
|
source "collectd-mon.conf.erb"
|
||||||
|
owner "root"
|
||||||
|
group "root"
|
||||||
|
mode 0644
|
||||||
|
notifies :restart, "service[collectd]"
|
||||||
|
end
|
||||||
|
|
||||||
|
service "collectd" do
|
||||||
|
action[:enable,:start]
|
||||||
|
end
|
||||||
68
collectd/recipes/ceph-osd.rb
Normal file
68
collectd/recipes/ceph-osd.rb
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
|
||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: collectd
|
||||||
|
# Recipe:: ceph-osd
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
packages = %w{
|
||||||
|
collectd
|
||||||
|
collectd-core
|
||||||
|
}
|
||||||
|
|
||||||
|
packages.each do |pkg|
|
||||||
|
package pkg do
|
||||||
|
action :upgrade
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
service "collectd" do
|
||||||
|
service_name "collectd"
|
||||||
|
supports :restart => true
|
||||||
|
end
|
||||||
|
|
||||||
|
directories = %w{
|
||||||
|
/etc/collectd
|
||||||
|
/var/lib/collectd
|
||||||
|
/var/lib/collectd/rrd
|
||||||
|
}
|
||||||
|
|
||||||
|
directories.each do |dir|
|
||||||
|
directory dir do
|
||||||
|
action :create
|
||||||
|
mode 0755
|
||||||
|
owner "root"
|
||||||
|
group "root"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
hostname = node[:hostname]
|
||||||
|
|
||||||
|
osds = %x[/usr/bin/cconf -c /etc/ceph/ceph.conf --list-sections osd --filter-key-value host=#{hostname}]
|
||||||
|
|
||||||
|
template "/etc/collectd/collectd.conf" do
|
||||||
|
source "collectd-osd.conf.erb"
|
||||||
|
owner "root"
|
||||||
|
group "root"
|
||||||
|
mode 0644
|
||||||
|
variables(
|
||||||
|
:osds => osds
|
||||||
|
)
|
||||||
|
notifies :restart, "service[collectd]"
|
||||||
|
end
|
||||||
|
|
||||||
|
service "collectd" do
|
||||||
|
action[:enable,:start]
|
||||||
|
end
|
||||||
61
collectd/recipes/default.rb
Normal file
61
collectd/recipes/default.rb
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
|
||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: collectd
|
||||||
|
# Recipe:: default
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
packages = %w{
|
||||||
|
collectd
|
||||||
|
collectd-core
|
||||||
|
}
|
||||||
|
|
||||||
|
packages.each do |pkg|
|
||||||
|
package pkg do
|
||||||
|
action :upgrade
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
service "collectd" do
|
||||||
|
service_name "collectd"
|
||||||
|
supports :restart => true
|
||||||
|
end
|
||||||
|
|
||||||
|
directories = %w{
|
||||||
|
/etc/collectd
|
||||||
|
/var/lib/collectd
|
||||||
|
/var/lib/collectd/rrd
|
||||||
|
}
|
||||||
|
|
||||||
|
directories.each do |dir|
|
||||||
|
directory dir do
|
||||||
|
action :create
|
||||||
|
mode 0755
|
||||||
|
owner "root"
|
||||||
|
group "root"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
template "/etc/collectd/collectd.conf" do
|
||||||
|
source "collectd.conf.erb"
|
||||||
|
owner "root"
|
||||||
|
group "root"
|
||||||
|
mode 0644
|
||||||
|
notifies :restart, "service[collectd]"
|
||||||
|
end
|
||||||
|
|
||||||
|
service "collectd" do
|
||||||
|
action[:enable,:start]
|
||||||
|
end
|
||||||
44
collectd/templates/default/collectd-mon.conf.erb
Normal file
44
collectd/templates/default/collectd-mon.conf.erb
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
Hostname <%= node[:fqdn] %>
|
||||||
|
LoadPlugin syslog
|
||||||
|
<Plugin syslog>
|
||||||
|
LogLevel info
|
||||||
|
</Plugin>
|
||||||
|
LoadPlugin cpu
|
||||||
|
LoadPlugin df
|
||||||
|
LoadPlugin disk
|
||||||
|
LoadPlugin entropy
|
||||||
|
LoadPlugin interface
|
||||||
|
LoadPlugin load
|
||||||
|
LoadPlugin memory
|
||||||
|
LoadPlugin network
|
||||||
|
LoadPlugin processes
|
||||||
|
LoadPlugin swap
|
||||||
|
LoadPlugin uptime
|
||||||
|
LoadPlugin users
|
||||||
|
<Plugin "logfile">
|
||||||
|
LogLevel "debug"
|
||||||
|
file "/var/log/collectd.log"
|
||||||
|
Timestamp true
|
||||||
|
</Plugin>
|
||||||
|
<Plugin network>
|
||||||
|
Server "<%= node[:collectd][:sink] %>" "25826"
|
||||||
|
TimeToLive 128
|
||||||
|
MaxPacketSize 1024
|
||||||
|
CacheFlush 1800
|
||||||
|
</Plugin>
|
||||||
|
<Plugin rrdtool>
|
||||||
|
DataDir "/var/lib/collectd/rrd"
|
||||||
|
</Plugin>
|
||||||
|
LoadPlugin python
|
||||||
|
<Plugin python>
|
||||||
|
ModulePath "/usr/lib/collectd/python.so"
|
||||||
|
LogTraces true
|
||||||
|
Import "cephtool"
|
||||||
|
<Module "cephtool">
|
||||||
|
cephtool "/usr/bin/ceph"
|
||||||
|
config "/etc/ceph/ceph.conf"
|
||||||
|
</Module>
|
||||||
|
</Plugin>
|
||||||
|
|
||||||
|
Include "/etc/collectd/filters.conf"
|
||||||
|
Include "/etc/collectd/thresholds.conf"
|
||||||
41
collectd/templates/default/collectd-osd.conf.erb
Normal file
41
collectd/templates/default/collectd-osd.conf.erb
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
Hostname <%= node[:fqdn] %>
|
||||||
|
LoadPlugin syslog
|
||||||
|
<Plugin syslog>
|
||||||
|
LogLevel info
|
||||||
|
</Plugin>
|
||||||
|
LoadPlugin cpu
|
||||||
|
LoadPlugin df
|
||||||
|
LoadPlugin disk
|
||||||
|
LoadPlugin entropy
|
||||||
|
LoadPlugin interface
|
||||||
|
LoadPlugin load
|
||||||
|
LoadPlugin memory
|
||||||
|
LoadPlugin network
|
||||||
|
LoadPlugin processes
|
||||||
|
LoadPlugin swap
|
||||||
|
LoadPlugin uptime
|
||||||
|
LoadPlugin users
|
||||||
|
<Plugin "logfile">
|
||||||
|
LogLevel "debug"
|
||||||
|
file "/var/log/collectd.log"
|
||||||
|
Timestamp true
|
||||||
|
</Plugin>
|
||||||
|
<Plugin network>
|
||||||
|
Server "<%= node[:collectd][:sink] %>" "25826"
|
||||||
|
TimeToLive 128
|
||||||
|
MaxPacketSize 1024
|
||||||
|
CacheFlush 1800
|
||||||
|
</Plugin>
|
||||||
|
<Plugin rrdtool>
|
||||||
|
DataDir "/var/lib/collectd/rrd"
|
||||||
|
</Plugin>
|
||||||
|
LoadPlugin ceph
|
||||||
|
<% @osds.each do |osd| -%>
|
||||||
|
<Plugin ceph>
|
||||||
|
Name "<%= osd.chomp %>"
|
||||||
|
SocketPath "/var/run/ceph/<%= osd.chomp %>.asok"
|
||||||
|
</Plugin>
|
||||||
|
<% end -%>
|
||||||
|
|
||||||
|
Include "/etc/collectd/filters.conf"
|
||||||
|
Include "/etc/collectd/thresholds.conf"
|
||||||
34
collectd/templates/default/collectd.conf.erb
Normal file
34
collectd/templates/default/collectd.conf.erb
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
Hostname <%= node[:fqdn] %>
|
||||||
|
LoadPlugin syslog
|
||||||
|
<Plugin syslog>
|
||||||
|
LogLevel "info"
|
||||||
|
</Plugin>
|
||||||
|
LoadPlugin cpu
|
||||||
|
LoadPlugin df
|
||||||
|
LoadPlugin disk
|
||||||
|
LoadPlugin entropy
|
||||||
|
LoadPlugin interface
|
||||||
|
LoadPlugin load
|
||||||
|
LoadPlugin memory
|
||||||
|
LoadPlugin network
|
||||||
|
LoadPlugin processes
|
||||||
|
LoadPlugin swap
|
||||||
|
LoadPlugin uptime
|
||||||
|
LoadPlugin users
|
||||||
|
<Plugin "logfile">
|
||||||
|
LogLevel "debug"
|
||||||
|
file "/var/log/collectd.log"
|
||||||
|
Timestamp true
|
||||||
|
</Plugin>
|
||||||
|
<Plugin network>
|
||||||
|
Server "<%= node[:collectd][:sink] %>" "25826"
|
||||||
|
TimeToLive 128
|
||||||
|
MaxPacketSize 1024
|
||||||
|
CacheFlush 1800
|
||||||
|
</Plugin>
|
||||||
|
<Plugin rrdtool>
|
||||||
|
DataDir "/var/lib/collectd/rrd"
|
||||||
|
</Plugin>
|
||||||
|
|
||||||
|
Include "/etc/collectd/filters.conf"
|
||||||
|
Include "/etc/collectd/thresholds.conf"
|
||||||
0
handle-core/README.rdoc
Normal file
0
handle-core/README.rdoc
Normal file
6
handle-core/metadata.rb
Normal file
6
handle-core/metadata.rb
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
maintainer "Kyle Bader"
|
||||||
|
maintainer_email "kyle.bader@dreamhost.com"
|
||||||
|
license "Apache 2.0"
|
||||||
|
description "Installs DreamHost Objects Core Handler"
|
||||||
|
long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc'))
|
||||||
|
version "0.0.1"
|
||||||
22
handle-core/recipes/default.rb
Normal file
22
handle-core/recipes/default.rb
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#
|
||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: handle-core
|
||||||
|
# Recipe:: default
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
package "handle-core" do
|
||||||
|
action :upgrade
|
||||||
|
end
|
||||||
0
parted/README.rdoc
Normal file
0
parted/README.rdoc
Normal file
6
parted/metadata.rb
Normal file
6
parted/metadata.rb
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
maintainer "Kyle Bader"
|
||||||
|
maintainer_email "kyle.bader@dreamhost.com"
|
||||||
|
license "Apache 2.0"
|
||||||
|
description "Installs the parted disk utility"
|
||||||
|
long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc'))
|
||||||
|
version "0.0.1"
|
||||||
22
parted/recipes/default.rb
Normal file
22
parted/recipes/default.rb
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#
|
||||||
|
# Author:: Kyle Bader <kyle.bader@dreamhost.com>
|
||||||
|
# Cookbook Name:: parted
|
||||||
|
# Recipe:: default
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
package "parted" do
|
||||||
|
action :upgrade
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user