diff --git a/README.md b/README.md index 756ca2e..d9930ce 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,13 @@ instance, or with [Vagrant](http://vagrantup.com/) Make sure you customize `cookbooks/database/attributes/default.rb` to use your actual database user and database name. +This cookbook depends on the following cookbooks: + + * build-essential + * postgresql + + \ No newline at end of file diff --git a/Vagrantfile b/Vagrantfile deleted file mode 100644 index 3087cc8..0000000 --- a/Vagrantfile +++ /dev/null @@ -1,25 +0,0 @@ -Vagrant::Config.run do |config| - config.vm.box = "base" - - config.vm.forward_port "http", 80, 8080 - config.vm.forward_port "runserver", 8000, 8000 - - # Share an additional folder to the guest VM. The first argument is - # an identifier, the second is the path on the guest to mount the - # folder, and the third is the path on the host to the actual folder. - # config.vm.share_folder "v-data", "/vagrant_data", "../data" - - - # Enable provisioning with chef solo, specifying a cookbooks path (relative - # to this Vagrantfile), and adding some recipes and/or roles. - config.vm.provision :chef_solo do |chef| - chef.provisioning_path = "/var/vagrant-chef" - chef.cookbooks_path = "cookbooks" - chef.log_level = 'debug' - chef.add_recipe "geos" - chef.add_recipe "proj4" - chef.add_recipe "postgis" - chef.add_recipe "database" - end - -end diff --git a/attributes/default.rb b/attributes/default.rb new file mode 100644 index 0000000..793004c --- /dev/null +++ b/attributes/default.rb @@ -0,0 +1,4 @@ +default[:geodjango][:postgis][:version] = "1.5.5" +default[:geodjango][:geos][:version] = "3.3.5" +default[:geodjango][:proj4][:version] = "4.7.0" +default[:geodjango][:proj4][:datumgrid][:version] = "1.5" \ No newline at end of file diff --git a/cookbooks/build-essential/README.md b/cookbooks/build-essential/README.md deleted file mode 100644 index d75724d..0000000 --- a/cookbooks/build-essential/README.md +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION -=========== - -Installs packages required for compiling C software from source. - -LICENSE AND AUTHOR -================== - -Author:: Joshua Timberman () -Author:: Seth Chisamore () - -Copyright 2009-2011, Opscode, Inc. - -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. diff --git a/cookbooks/build-essential/metadata.rb b/cookbooks/build-essential/metadata.rb deleted file mode 100644 index e32d668..0000000 --- a/cookbooks/build-essential/metadata.rb +++ /dev/null @@ -1,10 +0,0 @@ -maintainer "Opscode, Inc." -maintainer_email "cookbooks@opscode.com" -license "Apache 2.0" -description "Installs C compiler / build tools" -version "1.0.0" -recipe "build-essential", "Installs C compiler and build tools on Linux" - -%w{ fedora redhat centos ubuntu debian }.each do |os| - supports os -end diff --git a/cookbooks/build-essential/recipes/default.rb b/cookbooks/build-essential/recipes/default.rb deleted file mode 100644 index ccb9501..0000000 --- a/cookbooks/build-essential/recipes/default.rb +++ /dev/null @@ -1,45 +0,0 @@ -# -# Cookbook Name:: build-essential -# Recipe:: default -# -# Copyright 2008-2009, Opscode, Inc. -# -# 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. -# - -case node['platform'] -when "ubuntu","debian" - %w{build-essential binutils-doc}.each do |pkg| - package pkg do - action :install - end - end -when "centos","redhat","fedora" - %w{gcc gcc-c++ kernel-devel make}.each do |pkg| - package pkg do - action :install - end - end -end - -package "autoconf" do - action :install -end - -package "flex" do - action :install -end - -package "bison" do - action :install -end diff --git a/cookbooks/database/attributes/default.rb b/cookbooks/database/attributes/default.rb deleted file mode 100644 index c2236c4..0000000 --- a/cookbooks/database/attributes/default.rb +++ /dev/null @@ -1,2 +0,0 @@ -default[:database][:dbname] = 'databaseuser' -default[:database][:dbuser] = 'databasename' \ No newline at end of file diff --git a/cookbooks/database/recipes/default.rb b/cookbooks/database/recipes/default.rb deleted file mode 100644 index 12ce246..0000000 --- a/cookbooks/database/recipes/default.rb +++ /dev/null @@ -1,15 +0,0 @@ -dbuser = node[:database][:dbuser] -dbname = node[:database][:dbname] -dbpassword = node[:database][:dbname] - -postgresql_user dbuser do - password dbpassword - privileges :superuser => false, :createdb => false, :inherit => true, :login => true -end - -postgresql_database dbname do - owner dbuser - template "template_postgis" - flags :datconnlimit => 5 - modules [ "postgis" ] -end diff --git a/cookbooks/geos/attributes/default.rb b/cookbooks/geos/attributes/default.rb deleted file mode 100644 index de44b5c..0000000 --- a/cookbooks/geos/attributes/default.rb +++ /dev/null @@ -1,2 +0,0 @@ -default[:geos][:version] = "3.2.2" - diff --git a/cookbooks/postgis/attributes/default.rb b/cookbooks/postgis/attributes/default.rb deleted file mode 100644 index a3262eb..0000000 --- a/cookbooks/postgis/attributes/default.rb +++ /dev/null @@ -1 +0,0 @@ -default[:postgis][:version] = "1.5.2" diff --git a/cookbooks/postgresql/README.rdoc b/cookbooks/postgresql/README.rdoc deleted file mode 100644 index 9931919..0000000 --- a/cookbooks/postgresql/README.rdoc +++ /dev/null @@ -1,69 +0,0 @@ -= DESCRIPTION: - -Installs and configures the PostgreSQL client or server. - -= REQUIREMENTS: - -== Platform: - -Tested on CentOS 5.5, Ubuntu 10.04 and Debian Lenny but should also support Red Hat, Fedora and SUSE. - -== Cookbooks: - -= ATTRIBUTES: - -* postgresql[:listen] - IP address to listen on. -* postgrseql[:port] - Port number to use. -* postgresql[:dir] - Configuration files location. -* postgresql[:contrib_dir] - "contrib" scripts location. Read-only, determined by platform. -* postgresql[:version] - Version of PostgreSQL to use. Read-only, determined by platform. -* postgresql[:ssl] - Enable SSL support? The Debian post installation script automatically builds the certificates. - -= USAGE: - -For clients: - - include_recipe "postgresql::client" - -For servers: - - include_recipe "postgresql::server" - -The server recipe includes the client recipe and either the Red Hat family (postgresql::server_redhat) or Debian family (postgresql::server_debian) recipe. These platform styles differ quite a bit. - -The templates provided by this cookbook will probably need to be tweaked for the local environment as no tuning parameters are specified in them. The templates are separated by family designation in the template directory, since Chef doesn't do "platform family" style file specificity. - -A postgresql_user definition is provided for creating users. Supported actions are :create and :drop. The openssl cookbook can be used to randomly generate a secure password. - - postgresql_user "fred" do - password "foobar" - privileges :superuser => false, :createdb => false, :inherit => true, :login => true - end - -A postgresql_database definition is provided for creating databases. Supported actions are :create and :drop. Additional modules from the "contrib" directory can be given in an array. Include "postgis" in this array to enable PostGIS, which is handled as a special case. - - postgresql_database "foobar" do - owner "fred" - template "barbaz" - flags :datconnlimit => 5 - languages [ "plpgsql" ] - modules [ "citext", "postgis" ] - end - -= LICENSE and AUTHOR: - -Author:: Joshua Timberman (), James Le Cuirot () - -Copyright:: 2009-2010, Opscode, Inc; 2010, FindsYou Limited - -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. diff --git a/cookbooks/postgresql/attributes/default.rb b/cookbooks/postgresql/attributes/default.rb deleted file mode 100644 index 16fe175..0000000 --- a/cookbooks/postgresql/attributes/default.rb +++ /dev/null @@ -1,78 +0,0 @@ -# -# Cookbook Name:: postgresql -# Attributes:: postgresql -# -# Copyright 2008-2009, Opscode, Inc. -# -# 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[:postgresql][:listen] = "localhost" -default[:postgresql][:port] = "5432" - -case platform -when "debian" - - if platform_version.to_f == 5.0 - default[:postgresql][:version] = "8.3" - elsif platform_version =~ /.*sid/ - default[:postgresql][:version] = "8.4" - end - - set[:postgresql][:dir] = "/etc/postgresql/#{node[:postgresql][:version]}/main" - set[:postgresql][:contrib_dir] = "/usr/share/postgresql/#{node[:postgresql][:version]}/contrib" - -when "ubuntu" - - if platform_version.to_f <= 9.04 - default[:postgresql][:version] = "8.3" - else - default[:postgresql][:version] = "8.4" - end - - set[:postgresql][:dir] = "/etc/postgresql/#{node[:postgresql][:version]}/main" - set[:postgresql][:contrib_dir] = "/usr/share/postgresql/#{node[:postgresql][:version]}/contrib" - -when "fedora" - - if platform_version.to_f <= 12 - default[:postgresql][:version] = "8.3" - else - default[:postgresql][:version] = "8.4" - end - - set[:postgresql][:dir] = "/var/lib/pgsql/data" - set[:postgresql][:contrib_dir] = "/usr/share/pgsql/contrib" - -when "redhat","centos" - - default[:postgresql][:version] = "8.4" - set[:postgresql][:dir] = "/var/lib/pgsql/data" - set[:postgresql][:contrib_dir] = "/usr/share/pgsql/contrib" - -when "suse" - - if platform_version.to_f <= 11.1 - default[:postgresql][:version] = "8.3" - else - default[:postgresql][:version] = "8.4" - end - - set[:postgresql][:dir] = "/var/lib/pgsql/data" - set[:postgresql][:contrib_dir] = "/usr/share/postgresql/contrib" - -else - default[:postgresql][:version] = "8.4" - set[:postgresql][:dir] = "/etc/postgresql/#{node[:postgresql][:version]}/main" - set[:postgresql][:contrib_dir] = "/usr/share/postgresql/#{node[:postgresql][:version]}/contrib" -end diff --git a/cookbooks/postgresql/definitions/postgresql_database.rb b/cookbooks/postgresql/definitions/postgresql_database.rb deleted file mode 100644 index 5f8358f..0000000 --- a/cookbooks/postgresql/definitions/postgresql_database.rb +++ /dev/null @@ -1,105 +0,0 @@ -# -# Cookbook Name:: postgresql -# Definition:: postgresql_database -# -# Copyright 2010, FindsYou Limited -# -# 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. -# - -define :postgresql_database, :action => :create, :owner => "postgres" do - include_recipe "postgresql::server" - - case params[:action] - when :create - if params[:template] - template = "-T #{params[:template]}" - end - - execute "createdb #{template} #{params[:name]}" do - user "postgres" - not_if "psql -f /dev/null #{params[:name]}", :user => "postgres" - end - - execute "psql -c 'ALTER DATABASE #{params[:name]} OWNER TO #{params[:owner]}'" do - user "postgres" - end - - if params[:flags] - params[:flags].each do |k,v| - execute "psql -c \"UPDATE pg_catalog.pg_database SET #{k} = '#{v}' WHERE datname = '#{params[:name]}'\" #{params[:name]}" do - user "postgres" - end - end - end - - modules = params[:modules] || [] - modules = [ *modules ] - postgis = !modules.delete("postgis").nil? - - languages = params[:languages] || [] - languages = [ *languages ] - languages << "plpgsql" if postgis - - contrib = node.postgresql.contrib_dir - - languages.uniq.each do |language| - execute "createlang #{language} #{params[:name]}" do - user "postgres" - not_if "psql -c 'SELECT lanname FROM pg_catalog.pg_language' #{params[:name]} | grep '^ #{language}$'", :user => "postgres" - end - end - - unless modules.empty? - version = node.platform == "centos" ? node.postgresql.version.delete(".") : "" - package "postgresql#{version}-contrib" - end - - if postgis - include_recipe "postgresql::postgis" - - # PostGIS 1.4 and above. - execute "psql -1 -f #{contrib}/postgis.sql #{params[:name]}" do - user "postgres" - only_if { File.exists? "#{contrib}/postgis.sql" } - end - - # PostGIS 1.3 and below. - execute "psql -1 -f #{contrib}/lwpostgis.sql #{params[:name]}" do - user "postgres" - not_if { File.exists? "#{contrib}/postgis.sql" } - end - - modules << "spatial_ref_sys" - modules << "postgis_comments" - end - - modules.uniq.each do |mod| - execute "psql -1 -f #{contrib}/#{mod}.sql #{params[:name]}" do - user "postgres" - end - end - - if postgis - %w( geometry_columns spatial_ref_sys ).each do |table| - execute "psql -c 'ALTER TABLE #{table} OWNER TO #{params[:owner]}' #{params[:name]}" do - user "postgres" - end - end - end - when :drop - execute "psql -c 'DROP DATABASE IF EXISTS #{params[:name]}'" do - user "postgres" - end - end -end diff --git a/cookbooks/postgresql/definitions/postgresql_user.rb b/cookbooks/postgresql/definitions/postgresql_user.rb deleted file mode 100644 index 2a8a9ac..0000000 --- a/cookbooks/postgresql/definitions/postgresql_user.rb +++ /dev/null @@ -1,33 +0,0 @@ -define :postgresql_user, :action => :create do - include_recipe "postgresql::server" - - case params[:action] - when :create - privileges = { :superuser => false, :createdb => false, :inherit => true, :login => true } - privileges.merge! params[:privileges] if params[:privileges] - privileges = privileges.to_a.map! { |p,b| (b ? '' : 'NO') + p.to_s.upcase }.join(' ') - - if params[:password] - password = "PASSWORD '#{params[:password]}'" - end - - sql = "#{params[:name]} #{privileges} #{password}" - exists = "psql -c 'SELECT usename FROM pg_catalog.pg_user' | grep '^ #{params[:name]}$'" - - execute "alter postgresql user #{params[:name]}" do - user "postgres" - command "psql -c \"ALTER ROLE #{sql}\"" - only_if exists, :user => "postgres" - end - - execute "create postgresql user #{params[:name]}" do - user "postgres" - command "psql -c \"CREATE ROLE #{sql}\"" - not_if exists, :user => "postgres" - end - when :drop - execute "psql -c 'DROP ROLE IF EXISTS #{params[:name]}'" do - user "postgres" - end - end -end diff --git a/cookbooks/postgresql/metadata.json b/cookbooks/postgresql/metadata.json deleted file mode 100644 index 84c1b51..0000000 --- a/cookbooks/postgresql/metadata.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "postgresql", - "description": "Installs and configures postgresql for clients or servers", - "long_description": "= DESCRIPTION:\n\nInstalls and configures postgresql client or server.\n\n= REQUIREMENTS:\n\n== Platform:\n\nTested on CentOS 5.5, Ubuntu 10.04 but should support centos, redhat, fedora, suse, ubuntu and debian.\n\n== Cookbooks:\n\n= ATTRIBUTES: \n\n* postgresql[:dir] - configuration file location.\n* postgresql[:version] - Version of postgresql to use. Configured in attributes based on platform.\n* postgresql[:ssl] - used on debian family installs to enable ssl support. The debian post installation script automatically builds the certificates.\n\n= USAGE:\n\nFor clients:\n\n include_recipe \"postgresql::client\"\n \nFor server: \n\n include_recipe \"postgresql::server\"\n \n(client is already included by server). This will check the platform that the node is and include either redhat family recipe (postgresql::server_redhat) or debian family (postgresql::server_debian) because the two styles differ quite a bit.\n\nThe templates provided by this cookbook will probably need to be tweaked for the local environment, no tuning parameters are specified in them. The templates are separated by family designation in the template directory, since Chef doesn't do \"platform family\" style file specificity.\n\n= LICENSE and AUTHOR:\n \nAuthor:: Joshua Timberman ()\n\nCopyright:: 2009-2010, Opscode, Inc\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n", - "maintainer": "Opscode, Inc.", - "maintainer_email": "cookbooks@opscode.com", - "license": "Apache 2.0", - "platforms": { - "rhel": [ - - ], - "centos": [ - - ], - "fedora": [ - - ], - "ubuntu": [ - - ], - "debian": [ - - ], - "suse": [ - - ] - }, - "dependencies": { - }, - "recommendations": { - }, - "suggestions": { - }, - "conflicting": { - }, - "providing": { - }, - "replacing": { - }, - "attributes": { - }, - "groupings": { - }, - "recipes": { - "postgresql": "Empty, use one of the other recipes", - "postgresql::client": "Installs postgresql client package(s)", - "postgresql::server": "Installs postgresql server packages, debian family style", - "postgresql::redhat": "Installs postgresql server packages, redhat family style" - }, - "version": "0.11.1" -} \ No newline at end of file diff --git a/cookbooks/postgresql/metadata.rb b/cookbooks/postgresql/metadata.rb deleted file mode 100644 index 7d64a64..0000000 --- a/cookbooks/postgresql/metadata.rb +++ /dev/null @@ -1,51 +0,0 @@ -maintainer "Opscode, Inc." -maintainer_email "cookbooks@opscode.com" -license "Apache 2.0" -description "Installs and configures PostgreSQL for clients or servers" -long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc')) -version "0.11.1" - -recipe "postgresql", "Empty, use one of the other recipes" -recipe "postgresql::client", "Installs PostgreSQL client package(s)" -recipe "postgresql::server", "Installs PostgreSQL server packages, templates" -recipe "postgresql::server_redhat", "Installs PostgreSQL server packages, Red Hat family style" -recipe "postgresql::server_server", "Installs PostgreSQL server packages, Debian family style" -recipe "postgresql::postgis", "Installs PostGIS package(s)" - -attribute "postgresql/listen", - :display_name => "PostgreSQL listen address", - :recipes => [ "server_debian", "server_redhat" ], - :default => "localhost", - :description => "The IP address for PostgreSQL to listen on." - -attribute "postgresql/port", - :display_name => "PostgreSQL port number", - :recipes => [ "server_debian", "server_redhat" ], - :default => "5432", - :description => "The port number for PostgreSQL to use." - -attribute "postgresql/dir", - :display_name => "PostgreSQL configuration directory", - :recipes => [ "server_debian", "server_redhat" ], - :calculated => true, - :description => "The location of PostgreSQL's configuration files." - -attribute "postgresql/contrib_dir", - :display_name => "PostgreSQL contrib directory", - :calculated => true, - :description => "The location of PostgreSQL's contrib scripts. Read-only, determined by platform." - -attribute "postgresql/version", - :display_name => "PostgreSQL version", - :recipes => [ "server_debian", "server_redhat", "client", "postgis" ], - :calculated => true, - :description => "The version of PostgreSQL to use. Read-only, determined by platform." - -attribute "postgresql/ssl", - :display_name => "PostgreSQL SSL support", - :calculated => true, - :description => "Enable SSL support for PostgreSQL? This is false by default, except on Debian family platforms for 8.4 and above." - -%w{rhel centos fedora ubuntu debian suse}.each do |os| - supports os -end diff --git a/cookbooks/postgresql/recipes/client.rb b/cookbooks/postgresql/recipes/client.rb deleted file mode 100644 index ccc4344..0000000 --- a/cookbooks/postgresql/recipes/client.rb +++ /dev/null @@ -1,28 +0,0 @@ -# -# Cookbook Name:: postgresql -# Recipe:: client -# -# Copyright 2009, Opscode, Inc. -# -# 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. -# - -case node.platform -when "ubuntu","debian" - package "postgresql-client" - package "libpq-dev" -when "fedora","suse" - package "postgresql-devel" -when "redhat","centos" - package "postgresql#{node.postgresql.version.split('.').join}-devel" -end diff --git a/cookbooks/postgresql/recipes/default.rb b/cookbooks/postgresql/recipes/default.rb deleted file mode 100644 index 785b168..0000000 --- a/cookbooks/postgresql/recipes/default.rb +++ /dev/null @@ -1,20 +0,0 @@ -# -# Cookbook Name:: postgresql -# Recipe:: default -# -# Copyright 2009, Opscode, Inc. -# -# 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 "postgresql::client" diff --git a/cookbooks/postgresql/recipes/postgis.rb b/cookbooks/postgresql/recipes/postgis.rb deleted file mode 100644 index a4f15cb..0000000 --- a/cookbooks/postgresql/recipes/postgis.rb +++ /dev/null @@ -1,23 +0,0 @@ -# -# Cookbook Name:: postgresql -# Recipe:: postgis -# -# Copyright 2010, FindsYou Limited -# -# 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 "postgresql::server" - -package "postgis" -package "postgresql-#{node.postgresql.version}-postgis" if %w( debian ubuntu ).include?(node.platform) diff --git a/cookbooks/postgresql/recipes/server.rb b/cookbooks/postgresql/recipes/server.rb deleted file mode 100644 index cb40758..0000000 --- a/cookbooks/postgresql/recipes/server.rb +++ /dev/null @@ -1,29 +0,0 @@ -# -# Cookbook Name:: postgresql -# Recipe:: server -# -# Copyright 2009-2010, Opscode, Inc. -# -# 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 "postgresql::client" - -# Include the right "family" recipe for installing the server -# since they do things slightly differently. -case node.platform -when "redhat", "centos", "fedora", "suse" - include_recipe "postgresql::server_redhat" -when "debian", "ubuntu" - include_recipe "postgresql::server_debian" -end diff --git a/cookbooks/postgresql/recipes/server_debian.rb b/cookbooks/postgresql/recipes/server_debian.rb deleted file mode 100644 index f05f579..0000000 --- a/cookbooks/postgresql/recipes/server_debian.rb +++ /dev/null @@ -1,47 +0,0 @@ -# -# Cookbook Name:: postgresql -# Recipe:: server -# -# Copyright 2009-2010, Opscode, Inc. -# -# 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 "postgresql::client" - -node.default[:postgresql][:ssl] = node[:postgresql][:version].to_f > 8.3 - -package "postgresql" - -template "#{node[:postgresql][:dir]}/pg_hba.conf" do - source "debian.pg_hba.conf.erb" - owner "postgres" - group "postgres" - mode 0600 - notifies :reload, "service[postgresql]" -end - -template "#{node[:postgresql][:dir]}/postgresql.conf" do - source "debian.postgresql.conf.erb" - owner "postgres" - group "postgres" - mode 0600 - variables node[:postgresql] - notifies :restart, "service[postgresql]" -end - -service "postgresql" do - service_name "postgresql-#{node.postgresql.version}" - supports :restart => true, :status => true, :reload => true - action :nothing -end diff --git a/cookbooks/postgresql/recipes/server_redhat.rb b/cookbooks/postgresql/recipes/server_redhat.rb deleted file mode 100644 index ea327bd..0000000 --- a/cookbooks/postgresql/recipes/server_redhat.rb +++ /dev/null @@ -1,85 +0,0 @@ -# -# Cookbook Name:: postgresql -# Recipe:: server -# -# Copyright 2009-2010, Opscode, Inc. -# -# 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 "postgresql::client" - -# Create a group and user like the package will. -# Otherwise the templates fail. - -group "postgres" do - # Workaround lack of option for -r and -o... - group_name "-r -o postgres" - not_if { Etc.getgrnam("postgres") } - gid 26 -end - -user "postgres" do - # Workaround lack of option for -M and -n... - username "-M -n postgres" - not_if { Etc.getpwnam("postgres") } - shell "/bin/bash" - comment "PostgreSQL Server" - home "/var/lib/pgsql" - gid "postgres" - system true - uid 26 - supports :non_unique => true -end - -package "postgresql" do - case node.platform - when "redhat","centos" - package_name "postgresql#{node.postgresql.version.split('.').join}" - else - package_name "postgresql" - end -end - -case node.platform -when "redhat","centos" - package "postgresql#{node.postgresql.version.split('.').join}-server" -when "fedora","suse" - package "postgresql-server" -end - -execute "/sbin/service postgresql initdb" do - not_if { ::FileTest.exist?(File.join(node.postgresql.dir, "PG_VERSION")) } -end - -template "#{node[:postgresql][:dir]}/pg_hba.conf" do - source "redhat.pg_hba.conf.erb" - owner "postgres" - group "postgres" - mode 0600 - notifies :reload, "service[postgresql]" -end - -template "#{node[:postgresql][:dir]}/postgresql.conf" do - source "redhat.postgresql.conf.erb" - owner "postgres" - group "postgres" - mode 0600 - variables node[:postgresql] - notifies :restart, "service[postgresql]" -end - -service "postgresql" do - supports :restart => true, :status => true, :reload => true - action [:enable, :start] -end diff --git a/cookbooks/postgresql/templates/default/debian.pg_hba.conf.erb b/cookbooks/postgresql/templates/default/debian.pg_hba.conf.erb deleted file mode 100644 index c0485e2..0000000 --- a/cookbooks/postgresql/templates/default/debian.pg_hba.conf.erb +++ /dev/null @@ -1,84 +0,0 @@ -# PostgreSQL Client Authentication Configuration File -# =================================================== -# -# Refer to the "Client Authentication" section in the -# PostgreSQL documentation for a complete description -# of this file. A short synopsis follows. -# -# This file controls: which hosts are allowed to connect, how clients -# are authenticated, which PostgreSQL user names they can use, which -# databases they can access. Records take one of these forms: -# -# local DATABASE USER METHOD [OPTION] -# host DATABASE USER CIDR-ADDRESS METHOD [OPTION] -# hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTION] -# hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTION] -# -# (The uppercase items must be replaced by actual values.) -# -# The first field is the connection type: "local" is a Unix-domain socket, -# "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an -# SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket. -# -# DATABASE can be "all", "sameuser", "samerole", a database name, or -# a comma-separated list thereof. -# -# USER can be "all", a user name, a group name prefixed with "+", or -# a comma-separated list thereof. In both the DATABASE and USER fields -# you can also write a file name prefixed with "@" to include names from -# a separate file. -# -# CIDR-ADDRESS specifies the set of hosts the record matches. -# It is made up of an IP address and a CIDR mask that is an integer -# (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies -# the number of significant bits in the mask. Alternatively, you can write -# an IP address and netmask in separate columns to specify the set of hosts. -# -# METHOD can be "trust", "reject", "md5", "crypt", "password", "gss", "sspi", -# "krb5", "ident", "pam" or "ldap". Note that "password" sends passwords -# in clear text; "md5" is preferred since it sends encrypted passwords. -# -# OPTION is the ident map or the name of the PAM service, depending on METHOD. -# -# Database and user names containing spaces, commas, quotes and other special -# characters must be quoted. Quoting one of the keywords "all", "sameuser" or -# "samerole" makes the name lose its special character, and just match a -# database or username with that name. -# -# This file is read on server startup and when the postmaster receives -# a SIGHUP signal. If you edit the file on a running system, you have -# to SIGHUP the postmaster for the changes to take effect. You can use -# "pg_ctl reload" to do that. - -# Put your actual configuration here -# ---------------------------------- -# -# If you want to allow non-local connections, you need to add more -# "host" records. In that case you will also need to make PostgreSQL listen -# on a non-local interface via the listen_addresses configuration parameter, -# or via the -i or -h command line switches. -# - - - - -# DO NOT DISABLE! -# If you change this first entry you will need to make sure that the -# database -# super user can access the database using some other method. -# Noninteractive -# access to all databases is required during automatic maintenance -# (autovacuum, daily cronjob, replication, and similar tasks). -# -# Database administrative login by UNIX sockets -local all postgres ident -local all all md5 - -# TYPE DATABASE USER CIDR-ADDRESS METHOD - -# "local" is for Unix domain socket connections only -local all all ident -# IPv4 local connections: -host all all 127.0.0.1/32 md5 -# IPv6 local connections: -host all all ::1/128 md5 diff --git a/cookbooks/postgresql/templates/default/debian.postgresql.conf.erb b/cookbooks/postgresql/templates/default/debian.postgresql.conf.erb deleted file mode 100644 index 97318d2..0000000 --- a/cookbooks/postgresql/templates/default/debian.postgresql.conf.erb +++ /dev/null @@ -1,495 +0,0 @@ -# ----------------------------- -# PostgreSQL configuration file -# ----------------------------- -# -# This file consists of lines of the form: -# -# name = value -# -# (The "=" is optional.) Whitespace may be used. Comments are introduced with -# "#" anywhere on a line. The complete list of parameter names and allowed -# values can be found in the PostgreSQL documentation. -# -# The commented-out settings shown in this file represent the default values. -# Re-commenting a setting is NOT sufficient to revert it to the default value; -# you need to reload the server. -# -# This file is read on server startup and when the server receives a SIGHUP -# signal. If you edit the file on a running system, you have to SIGHUP the -# server for the changes to take effect, or use "pg_ctl reload". Some -# parameters, which are marked below, require a server shutdown and restart to -# take effect. -# -# Any parameter can also be given as a command-line option to the server, e.g., -# "postgres -c log_connections=on". Some paramters can be changed at run time -# with the "SET" SQL command. -# -# Memory units: kB = kilobytes MB = megabytes GB = gigabytes -# Time units: ms = milliseconds s = seconds min = minutes h = hours d = days - - -#------------------------------------------------------------------------------ -# FILE LOCATIONS -#------------------------------------------------------------------------------ - -# The default values of these variables are driven from the -D command-line -# option or PGDATA environment variable, represented here as ConfigDir. - -data_directory = '/var/lib/postgresql/<%= @version %>/main' # use data in another directory - # (change requires restart) -hba_file = '/etc/postgresql/<%= @version %>/main/pg_hba.conf' # host-based authentication file - # (change requires restart) -ident_file = '/etc/postgresql/<%= @version %>/main/pg_ident.conf' # ident configuration file - # (change requires restart) - -# If external_pid_file is not explicitly set, no extra PID file is written. -external_pid_file = '/var/run/postgresql/<%= @version %>-main.pid' # write an extra PID file - # (change requires restart) - - -#------------------------------------------------------------------------------ -# CONNECTIONS AND AUTHENTICATION -#------------------------------------------------------------------------------ - -# - Connection Settings - - -listen_addresses = '<%= @listen %>' # what IP address(es) to listen on; - # comma-separated list of addresses; - # defaults to 'localhost', '*' = all - # (change requires restart) -port = <%= @port %> # (change requires restart) -max_connections = 100 # (change requires restart) -# Note: Increasing max_connections costs ~400 bytes of shared memory per -# connection slot, plus lock space (see max_locks_per_transaction). You might -# also need to raise shared_buffers to support more connections. -#superuser_reserved_connections = 3 # (change requires restart) -unix_socket_directory = '/var/run/postgresql' # (change requires restart) -#unix_socket_group = '' # (change requires restart) -#unix_socket_permissions = 0777 # begin with 0 to use octal notation - # (change requires restart) -#bonjour_name = '' # defaults to the computer name - # (change requires restart) - -# - Security and Authentication - - -#authentication_timeout = 1min # 1s-600s -ssl = <%= @ssl ? true : false %> # (change requires restart) -#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers - # (change requires restart) -#password_encryption = on -#db_user_namespace = off - -# Kerberos and GSSAPI -#krb_server_keyfile = '' # (change requires restart) -#krb_srvname = 'postgres' # (change requires restart, Kerberos only) -#krb_server_hostname = '' # empty string matches any keytab entry - # (change requires restart, Kerberos only) -#krb_caseins_users = off # (change requires restart) -#krb_realm = '' # (change requires restart) - -# - TCP Keepalives - -# see "man 7 tcp" for details - -#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds; - # 0 selects the system default -#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds; - # 0 selects the system default -#tcp_keepalives_count = 0 # TCP_KEEPCNT; - # 0 selects the system default - - -#------------------------------------------------------------------------------ -# RESOURCE USAGE (except WAL) -#------------------------------------------------------------------------------ - -# - Memory - - -shared_buffers = 24MB # min 128kB or max_connections*16kB - # (change requires restart) -#temp_buffers = 8MB # min 800kB -#max_prepared_transactions = 5 # can be 0 or more - # (change requires restart) -# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory -# per transaction slot, plus lock space (see max_locks_per_transaction). -#work_mem = 1MB # min 64kB -#maintenance_work_mem = 16MB # min 1MB -#max_stack_depth = 2MB # min 100kB - -# - Free Space Map - - -<% if @version.to_f < 8.4 # max_fsm_pages doesn't exist on 8.4 %> -max_fsm_pages = 153600 # min max_fsm_relations*16, 6 bytes each - # (change requires restart) -<% end %> -#max_fsm_relations = 1000 # min 100, ~70 bytes each - # (change requires restart) - -# - Kernel Resource Usage - - -#max_files_per_process = 1000 # min 25 - # (change requires restart) -#shared_preload_libraries = '' # (change requires restart) - -# - Cost-Based Vacuum Delay - - -#vacuum_cost_delay = 0 # 0-1000 milliseconds -#vacuum_cost_page_hit = 1 # 0-10000 credits -#vacuum_cost_page_miss = 10 # 0-10000 credits -#vacuum_cost_page_dirty = 20 # 0-10000 credits -#vacuum_cost_limit = 200 # 1-10000 credits - -# - Background Writer - - -#bgwriter_delay = 200ms # 10-10000ms between rounds -#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round -#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round - - -#------------------------------------------------------------------------------ -# WRITE AHEAD LOG -#------------------------------------------------------------------------------ - -# - Settings - - -#fsync = on # turns forced synchronization on or off -#synchronous_commit = on # immediate fsync at commit -#wal_sync_method = fsync # the default is the first option - # supported by the operating system: - # open_datasync - # fdatasync - # fsync - # fsync_writethrough - # open_sync -#full_page_writes = on # recover from partial page writes -#wal_buffers = 64kB # min 32kB - # (change requires restart) -#wal_writer_delay = 200ms # 1-10000 milliseconds - -#commit_delay = 0 # range 0-100000, in microseconds -#commit_siblings = 5 # range 1-1000 - -# - Checkpoints - - -#checkpoint_segments = 3 # in logfile segments, min 1, 16MB each -#checkpoint_timeout = 5min # range 30s-1h -#checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0 -#checkpoint_warning = 30s # 0 is off - -# - Archiving - - -#archive_mode = off # allows archiving to be done - # (change requires restart) -#archive_command = '' # command to use to archive a logfile segment -#archive_timeout = 0 # force a logfile segment switch after this - # time; 0 is off - - -#------------------------------------------------------------------------------ -# QUERY TUNING -#------------------------------------------------------------------------------ - -# - Planner Method Configuration - - -#enable_bitmapscan = on -#enable_hashagg = on -#enable_hashjoin = on -#enable_indexscan = on -#enable_mergejoin = on -#enable_nestloop = on -#enable_seqscan = on -#enable_sort = on -#enable_tidscan = on - -# - Planner Cost Constants - - -#seq_page_cost = 1.0 # measured on an arbitrary scale -#random_page_cost = 4.0 # same scale as above -#cpu_tuple_cost = 0.01 # same scale as above -#cpu_index_tuple_cost = 0.005 # same scale as above -#cpu_operator_cost = 0.0025 # same scale as above -#effective_cache_size = 128MB - -# - Genetic Query Optimizer - - -#geqo = on -#geqo_threshold = 12 -#geqo_effort = 5 # range 1-10 -#geqo_pool_size = 0 # selects default based on effort -#geqo_generations = 0 # selects default based on effort -#geqo_selection_bias = 2.0 # range 1.5-2.0 - -# - Other Planner Options - - -#default_statistics_target = 10 # range 1-1000 -#constraint_exclusion = off -#from_collapse_limit = 8 -#join_collapse_limit = 8 # 1 disables collapsing of explicit - # JOIN clauses - - -#------------------------------------------------------------------------------ -# ERROR REPORTING AND LOGGING -#------------------------------------------------------------------------------ - -# - Where to Log - - -#log_destination = 'stderr' # Valid values are combinations of - # stderr, csvlog, syslog and eventlog, - # depending on platform. csvlog - # requires logging_collector to be on. - -# This is used when logging to stderr: -#logging_collector = off # Enable capturing of stderr and csvlog - # into log files. Required to be on for - # csvlogs. - # (change requires restart) - -# These are only used if logging_collector is on: -#log_directory = 'pg_log' # directory where log files are written, - # can be absolute or relative to PGDATA -#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern, - # can include strftime() escapes -#log_truncate_on_rotation = off # If on, an existing log file of the - # same name as the new log file will be - # truncated rather than appended to. - # But such truncation only occurs on - # time-driven rotation, not on restarts - # or size-driven rotation. Default is - # off, meaning append to existing files - # in all cases. -#log_rotation_age = 1d # Automatic rotation of logfiles will - # happen after that time. 0 to disable. -#log_rotation_size = 10MB # Automatic rotation of logfiles will - # happen after that much log output. - # 0 to disable. - -# These are relevant when logging to syslog: -#syslog_facility = 'LOCAL0' -#syslog_ident = 'postgres' - - -# - When to Log - - -#client_min_messages = notice # values in order of decreasing detail: - # debug5 - # debug4 - # debug3 - # debug2 - # debug1 - # log - # notice - # warning - # error - -#log_min_messages = notice # values in order of decreasing detail: - # debug5 - # debug4 - # debug3 - # debug2 - # debug1 - # info - # notice - # warning - # error - # log - # fatal - # panic - -#log_error_verbosity = default # terse, default, or verbose messages - -#log_min_error_statement = error # values in order of decreasing detail: - # debug5 - # debug4 - # debug3 - # debug2 - # debug1 - # info - # notice - # warning - # error - # log - # fatal - # panic (effectively off) - -#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements - # and their durations, > 0 logs only - # statements running at least this time. - -#silent_mode = off # DO NOT USE without syslog or - # logging_collector - # (change requires restart) - -# - What to Log - - -#debug_print_parse = off -#debug_print_rewritten = off -#debug_print_plan = off -#debug_pretty_print = off -#log_checkpoints = off -#log_connections = off -#log_disconnections = off -#log_duration = off -#log_hostname = off -log_line_prefix = '%t ' # special values: - # %u = user name - # %d = database name - # %r = remote host and port - # %h = remote host - # %p = process ID - # %t = timestamp without milliseconds - # %m = timestamp with milliseconds - # %i = command tag - # %c = session ID - # %l = session line number - # %s = session start timestamp - # %v = virtual transaction ID - # %x = transaction ID (0 if none) - # %q = stop here in non-session - # processes - # %% = '%' - # e.g. '<%u%%%d> ' -#log_lock_waits = off # log lock waits >= deadlock_timeout -#log_statement = 'none' # none, ddl, mod, all -#log_temp_files = -1 # log temporary files equal or larger - # than specified size; - # -1 disables, 0 logs all temp files -#log_timezone = unknown # actually, defaults to TZ environment - # setting - - -#------------------------------------------------------------------------------ -# RUNTIME STATISTICS -#------------------------------------------------------------------------------ - -# - Query/Index Statistics Collector - - -#track_activities = on -#track_counts = on -#update_process_title = on - - -# - Statistics Monitoring - - -#log_parser_stats = off -#log_planner_stats = off -#log_executor_stats = off -#log_statement_stats = off - - -#------------------------------------------------------------------------------ -# AUTOVACUUM PARAMETERS -#------------------------------------------------------------------------------ - -#autovacuum = on # Enable autovacuum subprocess? 'on' - # requires track_counts to also be on. -#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and - # their durations, > 0 logs only - # actions running at least that time. -#autovacuum_max_workers = 3 # max number of autovacuum subprocesses -#autovacuum_naptime = 1min # time between autovacuum runs -#autovacuum_vacuum_threshold = 50 # min number of row updates before - # vacuum -#autovacuum_analyze_threshold = 50 # min number of row updates before - # analyze -#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum -#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze -#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum - # (change requires restart) -#autovacuum_vacuum_cost_delay = 20 # default vacuum cost delay for - # autovacuum, -1 means use - # vacuum_cost_delay -#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for - # autovacuum, -1 means use - # vacuum_cost_limit - - -#------------------------------------------------------------------------------ -# CLIENT CONNECTION DEFAULTS -#------------------------------------------------------------------------------ - -# - Statement Behavior - - -#search_path = '"$user",public' # schema names -#default_tablespace = '' # a tablespace name, '' uses the default -#temp_tablespaces = '' # a list of tablespace names, '' uses - # only default tablespace -#check_function_bodies = on -#default_transaction_isolation = 'read committed' -#default_transaction_read_only = off -#session_replication_role = 'origin' -#statement_timeout = 0 # 0 is disabled -#vacuum_freeze_min_age = 100000000 -#xmlbinary = 'base64' -#xmloption = 'content' - -# - Locale and Formatting - - -datestyle = 'iso, mdy' -#timezone = unknown # actually, defaults to TZ environment - # setting -#timezone_abbreviations = 'Default' # Select the set of available time zone - # abbreviations. Currently, there are - # Default - # Australia - # India - # You can create your own file in - # share/timezonesets/. -#extra_float_digits = 0 # min -15, max 2 -#client_encoding = sql_ascii # actually, defaults to database - # encoding - -# These settings are initialized by initdb, but they can be changed. -#lc_messages = 'en_US.UTF-8' # locale for system error message - # strings -#lc_monetary = 'en_US.UTF-8' # locale for monetary formatting -#lc_numeric = 'en_US.UTF-8' # locale for number formatting -#lc_time = 'en_US.UTF-8' # locale for time formatting - -# default configuration for text search -default_text_search_config = 'pg_catalog.english' - -# - Other Defaults - - -#explain_pretty_print = on -#dynamic_library_path = '$libdir' -#local_preload_libraries = '' - - -#------------------------------------------------------------------------------ -# LOCK MANAGEMENT -#------------------------------------------------------------------------------ - -#deadlock_timeout = 1s -#max_locks_per_transaction = 64 # min 10 - # (change requires restart) -# Note: Each lock table slot uses ~270 bytes of shared memory, and there are -# max_locks_per_transaction * (max_connections + max_prepared_transactions) -# lock table slots. - - -#------------------------------------------------------------------------------ -# VERSION/PLATFORM COMPATIBILITY -#------------------------------------------------------------------------------ - -# - Previous PostgreSQL Versions - - -#add_missing_from = off -#array_nulls = on -#backslash_quote = safe_encoding # on, off, or safe_encoding -#default_with_oids = off -#escape_string_warning = on -#regex_flavor = advanced # advanced, extended, or basic -#sql_inheritance = on -#standard_conforming_strings = off -#synchronize_seqscans = on - -# - Other Platforms and Clients - - -#transform_null_equals = off - - -#------------------------------------------------------------------------------ -# CUSTOMIZED OPTIONS -#------------------------------------------------------------------------------ - -#custom_variable_classes = '' # list of custom variable class names diff --git a/cookbooks/postgresql/templates/default/redhat.pg_hba.conf.erb b/cookbooks/postgresql/templates/default/redhat.pg_hba.conf.erb deleted file mode 100644 index fb080ea..0000000 --- a/cookbooks/postgresql/templates/default/redhat.pg_hba.conf.erb +++ /dev/null @@ -1,74 +0,0 @@ -# PostgreSQL Client Authentication Configuration File -# =================================================== -# -# Refer to the "Client Authentication" section in the -# PostgreSQL documentation for a complete description -# of this file. A short synopsis follows. -# -# This file controls: which hosts are allowed to connect, how clients -# are authenticated, which PostgreSQL user names they can use, which -# databases they can access. Records take one of these forms: -# -# local DATABASE USER METHOD [OPTIONS] -# host DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] -# hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] -# hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] -# -# (The uppercase items must be replaced by actual values.) -# -# The first field is the connection type: "local" is a Unix-domain socket, -# "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an -# SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket. -# -# DATABASE can be "all", "sameuser", "samerole", a database name, or -# a comma-separated list thereof. -# -# USER can be "all", a user name, a group name prefixed with "+", or -# a comma-separated list thereof. In both the DATABASE and USER fields -# you can also write a file name prefixed with "@" to include names from -# a separate file. -# -# CIDR-ADDRESS specifies the set of hosts the record matches. -# It is made up of an IP address and a CIDR mask that is an integer -# (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies -# the number of significant bits in the mask. Alternatively, you can write -# an IP address and netmask in separate columns to specify the set of hosts. -# -# METHOD can be "trust", "reject", "md5", "password", "gss", "sspi", "krb5", -# "ident", "pam", "ldap" or "cert". Note that "password" sends passwords -# in clear text; "md5" is preferred since it sends encrypted passwords. -# -# OPTIONS are a set of options for the authentication in the format -# NAME=VALUE. The available options depend on the different authentication -# methods - refer to the "Client Authentication" section in the documentation -# for a list of which options are available for which authentication methods. -# -# Database and user names containing spaces, commas, quotes and other special -# characters must be quoted. Quoting one of the keywords "all", "sameuser" or -# "samerole" makes the name lose its special character, and just match a -# database or username with that name. -# -# This file is read on server startup and when the postmaster receives -# a SIGHUP signal. If you edit the file on a running system, you have -# to SIGHUP the postmaster for the changes to take effect. You can use -# "pg_ctl reload" to do that. - -# Put your actual configuration here -# ---------------------------------- -# -# If you want to allow non-local connections, you need to add more -# "host" records. In that case you will also need to make PostgreSQL listen -# on a non-local interface via the listen_addresses configuration parameter, -# or via the -i or -h command line switches. -# - - - -# TYPE DATABASE USER CIDR-ADDRESS METHOD - -# "local" is for Unix domain socket connections only -local all all ident -# IPv4 local connections: -host all all 127.0.0.1/32 ident -# IPv6 local connections: -host all all ::1/128 ident diff --git a/cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb b/cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb deleted file mode 100644 index c42d607..0000000 --- a/cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb +++ /dev/null @@ -1,501 +0,0 @@ -# ----------------------------- -# PostgreSQL configuration file -# ----------------------------- -# -# This file consists of lines of the form: -# -# name = value -# -# (The "=" is optional.) Whitespace may be used. Comments are introduced with -# "#" anywhere on a line. The complete list of parameter names and allowed -# values can be found in the PostgreSQL documentation. -# -# The commented-out settings shown in this file represent the default values. -# Re-commenting a setting is NOT sufficient to revert it to the default value; -# you need to reload the server. -# -# This file is read on server startup and when the server receives a SIGHUP -# signal. If you edit the file on a running system, you have to SIGHUP the -# server for the changes to take effect, or use "pg_ctl reload". Some -# parameters, which are marked below, require a server shutdown and restart to -# take effect. -# -# Any parameter can also be given as a command-line option to the server, e.g., -# "postgres -c log_connections=on". Some parameters can be changed at run time -# with the "SET" SQL command. -# -# Memory units: kB = kilobytes Time units: ms = milliseconds -# MB = megabytes s = seconds -# GB = gigabytes min = minutes -# h = hours -# d = days - - -#------------------------------------------------------------------------------ -# FILE LOCATIONS -#------------------------------------------------------------------------------ - -# The default values of these variables are driven from the -D command-line -# option or PGDATA environment variable, represented here as ConfigDir. - -#data_directory = 'ConfigDir' # use data in another directory - # (change requires restart) -#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file - # (change requires restart) -#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file - # (change requires restart) - -# If external_pid_file is not explicitly set, no extra PID file is written. -#external_pid_file = '(none)' # write an extra PID file - # (change requires restart) - - -#------------------------------------------------------------------------------ -# CONNECTIONS AND AUTHENTICATION -#------------------------------------------------------------------------------ - -# - Connection Settings - - -listen_addresses = '<%= @listen %>' # what IP address(es) to listen on; - # comma-separated list of addresses; - # defaults to 'localhost', '*' = all - # (change requires restart) -port = <%= @port %> # (change requires restart) -max_connections = 100 # (change requires restart) -# Note: Increasing max_connections costs ~400 bytes of shared memory per -# connection slot, plus lock space (see max_locks_per_transaction). -#superuser_reserved_connections = 3 # (change requires restart) -#unix_socket_directory = '' # (change requires restart) -#unix_socket_group = '' # (change requires restart) -#unix_socket_permissions = 0777 # begin with 0 to use octal notation - # (change requires restart) -#bonjour_name = '' # defaults to the computer name - # (change requires restart) - -# - Security and Authentication - - -#authentication_timeout = 1min # 1s-600s -ssl = <%= @ssl ? true : false %> # (change requires restart) -#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers - # (change requires restart) -#ssl_renegotiation_limit = 512MB # amount of data between renegotiations -#password_encryption = on -#db_user_namespace = off - -# Kerberos and GSSAPI -#krb_server_keyfile = '' -#krb_srvname = 'postgres' # (Kerberos only) -#krb_caseins_users = off - -# - TCP Keepalives - -# see "man 7 tcp" for details - -#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds; - # 0 selects the system default -#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds; - # 0 selects the system default -#tcp_keepalives_count = 0 # TCP_KEEPCNT; - # 0 selects the system default - - -#------------------------------------------------------------------------------ -# RESOURCE USAGE (except WAL) -#------------------------------------------------------------------------------ - -# - Memory - - -shared_buffers = 32MB # min 128kB - # (change requires restart) -#temp_buffers = 8MB # min 800kB -#max_prepared_transactions = 0 # zero disables the feature - # (change requires restart) -# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory -# per transaction slot, plus lock space (see max_locks_per_transaction). -# It is not advisable to set max_prepared_transactions nonzero unless you -# actively intend to use prepared transactions. -#work_mem = 1MB # min 64kB -#maintenance_work_mem = 16MB # min 1MB -#max_stack_depth = 2MB # min 100kB - -# - Kernel Resource Usage - - -#max_files_per_process = 1000 # min 25 - # (change requires restart) -#shared_preload_libraries = '' # (change requires restart) - -# - Cost-Based Vacuum Delay - - -#vacuum_cost_delay = 0ms # 0-100 milliseconds -#vacuum_cost_page_hit = 1 # 0-10000 credits -#vacuum_cost_page_miss = 10 # 0-10000 credits -#vacuum_cost_page_dirty = 20 # 0-10000 credits -#vacuum_cost_limit = 200 # 1-10000 credits - -# - Background Writer - - -#bgwriter_delay = 200ms # 10-10000ms between rounds -#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round -#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round - -# - Asynchronous Behavior - - -#effective_io_concurrency = 1 # 1-1000. 0 disables prefetching - - -#------------------------------------------------------------------------------ -# WRITE AHEAD LOG -#------------------------------------------------------------------------------ - -# - Settings - - -#fsync = on # turns forced synchronization on or off -#synchronous_commit = on # immediate fsync at commit -#wal_sync_method = fsync # the default is the first option - # supported by the operating system: - # open_datasync - # fdatasync - # fsync - # fsync_writethrough - # open_sync -#full_page_writes = on # recover from partial page writes -#wal_buffers = 64kB # min 32kB - # (change requires restart) -#wal_writer_delay = 200ms # 1-10000 milliseconds - -#commit_delay = 0 # range 0-100000, in microseconds -#commit_siblings = 5 # range 1-1000 - -# - Checkpoints - - -#checkpoint_segments = 3 # in logfile segments, min 1, 16MB each -#checkpoint_timeout = 5min # range 30s-1h -#checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0 -#checkpoint_warning = 30s # 0 disables - -# - Archiving - - -#archive_mode = off # allows archiving to be done - # (change requires restart) -#archive_command = '' # command to use to archive a logfile segment -#archive_timeout = 0 # force a logfile segment switch after this - # number of seconds; 0 disables - - -#------------------------------------------------------------------------------ -# QUERY TUNING -#------------------------------------------------------------------------------ - -# - Planner Method Configuration - - -#enable_bitmapscan = on -#enable_hashagg = on -#enable_hashjoin = on -#enable_indexscan = on -#enable_mergejoin = on -#enable_nestloop = on -#enable_seqscan = on -#enable_sort = on -#enable_tidscan = on - -# - Planner Cost Constants - - -#seq_page_cost = 1.0 # measured on an arbitrary scale -#random_page_cost = 4.0 # same scale as above -#cpu_tuple_cost = 0.01 # same scale as above -#cpu_index_tuple_cost = 0.005 # same scale as above -#cpu_operator_cost = 0.0025 # same scale as above -#effective_cache_size = 128MB - -# - Genetic Query Optimizer - - -#geqo = on -#geqo_threshold = 12 -#geqo_effort = 5 # range 1-10 -#geqo_pool_size = 0 # selects default based on effort -#geqo_generations = 0 # selects default based on effort -#geqo_selection_bias = 2.0 # range 1.5-2.0 - -# - Other Planner Options - - -#default_statistics_target = 100 # range 1-10000 -#constraint_exclusion = partition # on, off, or partition -#cursor_tuple_fraction = 0.1 # range 0.0-1.0 -#from_collapse_limit = 8 -#join_collapse_limit = 8 # 1 disables collapsing of explicit - # JOIN clauses - - -#------------------------------------------------------------------------------ -# ERROR REPORTING AND LOGGING -#------------------------------------------------------------------------------ - -# - Where to Log - - -#log_destination = 'stderr' # Valid values are combinations of - # stderr, csvlog, syslog and eventlog, - # depending on platform. csvlog - # requires logging_collector to be on. - -# This is used when logging to stderr: -logging_collector = on # Enable capturing of stderr and csvlog - # into log files. Required to be on for - # csvlogs. - # (change requires restart) - -# These are only used if logging_collector is on: -log_directory = 'pg_log' # directory where log files are written, - # can be absolute or relative to PGDATA -log_filename = 'postgresql-%a.log' # log file name pattern, - # can include strftime() escapes -log_truncate_on_rotation = on # If on, an existing log file of the - # same name as the new log file will be - # truncated rather than appended to. - # But such truncation only occurs on - # time-driven rotation, not on restarts - # or size-driven rotation. Default is - # off, meaning append to existing files - # in all cases. -log_rotation_age = 1d # Automatic rotation of logfiles will - # happen after that time. 0 disables. -log_rotation_size = 0 # Automatic rotation of logfiles will - # happen after that much log output. - # 0 disables. - -# These are relevant when logging to syslog: -#syslog_facility = 'LOCAL0' -#syslog_ident = 'postgres' - -#silent_mode = off # Run server silently. - # DO NOT USE without syslog or - # logging_collector - # (change requires restart) - - -# - When to Log - - -#client_min_messages = notice # values in order of decreasing detail: - # debug5 - # debug4 - # debug3 - # debug2 - # debug1 - # log - # notice - # warning - # error - -#log_min_messages = warning # values in order of decreasing detail: - # debug5 - # debug4 - # debug3 - # debug2 - # debug1 - # info - # notice - # warning - # error - # log - # fatal - # panic - -#log_error_verbosity = default # terse, default, or verbose messages - -#log_min_error_statement = error # values in order of decreasing detail: - # debug5 - # debug4 - # debug3 - # debug2 - # debug1 - # info - # notice - # warning - # error - # log - # fatal - # panic (effectively off) - -#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements - # and their durations, > 0 logs only - # statements running at least this number - # of milliseconds - - -# - What to Log - - -#debug_print_parse = off -#debug_print_rewritten = off -#debug_print_plan = off -#debug_pretty_print = on -#log_checkpoints = off -#log_connections = off -#log_disconnections = off -#log_duration = off -#log_hostname = off -#log_line_prefix = '' # special values: - # %u = user name - # %d = database name - # %r = remote host and port - # %h = remote host - # %p = process ID - # %t = timestamp without milliseconds - # %m = timestamp with milliseconds - # %i = command tag - # %c = session ID - # %l = session line number - # %s = session start timestamp - # %v = virtual transaction ID - # %x = transaction ID (0 if none) - # %q = stop here in non-session - # processes - # %% = '%' - # e.g. '<%u%%%d> ' -#log_lock_waits = off # log lock waits >= deadlock_timeout -#log_statement = 'none' # none, ddl, mod, all -#log_temp_files = -1 # log temporary files equal or larger - # than the specified size in kilobytes; - # -1 disables, 0 logs all temp files -#log_timezone = unknown # actually, defaults to TZ environment - # setting - - -#------------------------------------------------------------------------------ -# RUNTIME STATISTICS -#------------------------------------------------------------------------------ - -# - Query/Index Statistics Collector - - -#track_activities = on -#track_counts = on -#track_functions = none # none, pl, all -#track_activity_query_size = 1024 -#update_process_title = on -#stats_temp_directory = 'pg_stat_tmp' - - -# - Statistics Monitoring - - -#log_parser_stats = off -#log_planner_stats = off -#log_executor_stats = off -#log_statement_stats = off - - -#------------------------------------------------------------------------------ -# AUTOVACUUM PARAMETERS -#------------------------------------------------------------------------------ - -#autovacuum = on # Enable autovacuum subprocess? 'on' - # requires track_counts to also be on. -#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and - # their durations, > 0 logs only - # actions running at least this number - # of milliseconds. -#autovacuum_max_workers = 3 # max number of autovacuum subprocesses -#autovacuum_naptime = 1min # time between autovacuum runs -#autovacuum_vacuum_threshold = 50 # min number of row updates before - # vacuum -#autovacuum_analyze_threshold = 50 # min number of row updates before - # analyze -#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum -#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze -#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum - # (change requires restart) -#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for - # autovacuum, in milliseconds; - # -1 means use vacuum_cost_delay -#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for - # autovacuum, -1 means use - # vacuum_cost_limit - - -#------------------------------------------------------------------------------ -# CLIENT CONNECTION DEFAULTS -#------------------------------------------------------------------------------ - -# - Statement Behavior - - -#search_path = '"$user",public' # schema names -#default_tablespace = '' # a tablespace name, '' uses the default -#temp_tablespaces = '' # a list of tablespace names, '' uses - # only default tablespace -#check_function_bodies = on -#default_transaction_isolation = 'read committed' -#default_transaction_read_only = off -#session_replication_role = 'origin' -#statement_timeout = 0 # in milliseconds, 0 is disabled -#vacuum_freeze_min_age = 50000000 -#vacuum_freeze_table_age = 150000000 -#xmlbinary = 'base64' -#xmloption = 'content' - -# - Locale and Formatting - - -datestyle = 'iso, mdy' -#intervalstyle = 'postgres' -#timezone = unknown # actually, defaults to TZ environment - # setting -#timezone_abbreviations = 'Default' # Select the set of available time zone - # abbreviations. Currently, there are - # Default - # Australia - # India - # You can create your own file in - # share/timezonesets/. -#extra_float_digits = 0 # min -15, max 2 -#client_encoding = sql_ascii # actually, defaults to database - # encoding - -# These settings are initialized by initdb, but they can be changed. -lc_messages = 'en_US.UTF-8' # locale for system error message - # strings -lc_monetary = 'en_US.UTF-8' # locale for monetary formatting -lc_numeric = 'en_US.UTF-8' # locale for number formatting -lc_time = 'en_US.UTF-8' # locale for time formatting - -# default configuration for text search -default_text_search_config = 'pg_catalog.english' - -# - Other Defaults - - -#dynamic_library_path = '$libdir' -#local_preload_libraries = '' - - -#------------------------------------------------------------------------------ -# LOCK MANAGEMENT -#------------------------------------------------------------------------------ - -#deadlock_timeout = 1s -#max_locks_per_transaction = 64 # min 10 - # (change requires restart) -# Note: Each lock table slot uses ~270 bytes of shared memory, and there are -# max_locks_per_transaction * (max_connections + max_prepared_transactions) -# lock table slots. - - -#------------------------------------------------------------------------------ -# VERSION/PLATFORM COMPATIBILITY -#------------------------------------------------------------------------------ - -# - Previous PostgreSQL Versions - - -#add_missing_from = off -#array_nulls = on -#backslash_quote = safe_encoding # on, off, or safe_encoding -#default_with_oids = off -#escape_string_warning = on -#regex_flavor = advanced # advanced, extended, or basic -#sql_inheritance = on -#standard_conforming_strings = off -#synchronize_seqscans = on - -# - Other Platforms and Clients - - -#transform_null_equals = off - - -#------------------------------------------------------------------------------ -# CUSTOMIZED OPTIONS -#------------------------------------------------------------------------------ - -#custom_variable_classes = '' # list of custom variable class names diff --git a/cookbooks/proj4/attributes/default.rb b/cookbooks/proj4/attributes/default.rb deleted file mode 100644 index 130231c..0000000 --- a/cookbooks/proj4/attributes/default.rb +++ /dev/null @@ -1,2 +0,0 @@ -default[:proj4][:version] = "4.7.0" -default[:proj4][:datumgrid][:version] = "1.5" \ No newline at end of file diff --git a/metadata.rb b/metadata.rb new file mode 100644 index 0000000..ce3c6ac --- /dev/null +++ b/metadata.rb @@ -0,0 +1,12 @@ +name "geodjango" +license "MIT" +description "Installs GeoDjango requirements for Postgres" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) +recipe "geodjango", "Includes geodjango::postgis" +recipe "geodjango::postgis", "Installs PostGIS" +recipe "geodjango::geos", "Installs GEOS" +recipe "geodjango::proj4", "Installs PROJ.4" + +%w{ ubuntu debian }.each do |os| + supports os +end \ No newline at end of file diff --git a/recipes/default.rb b/recipes/default.rb new file mode 100644 index 0000000..fb240b5 --- /dev/null +++ b/recipes/default.rb @@ -0,0 +1 @@ +include_recipe "geodjango::postgis" \ No newline at end of file diff --git a/cookbooks/geos/recipes/default.rb b/recipes/geos.rb similarity index 91% rename from cookbooks/geos/recipes/default.rb rename to recipes/geos.rb index ccaf5ac..d3ae7c6 100644 --- a/cookbooks/geos/recipes/default.rb +++ b/recipes/geos.rb @@ -1,7 +1,7 @@ include_recipe "build-essential" -version = node[:geos][:version] +version = node[:geodjango][:geos][:version] remote_file "#{Chef::Config[:file_cache_path]}/geos-#{version}.tar.bz2" do diff --git a/cookbooks/postgis/recipes/default.rb b/recipes/postgis.rb similarity index 88% rename from cookbooks/postgis/recipes/default.rb rename to recipes/postgis.rb index a793aff..531d054 100644 --- a/cookbooks/postgis/recipes/default.rb +++ b/recipes/postgis.rb @@ -1,13 +1,14 @@ include_recipe "build-essential" include_recipe "postgresql::server" -include_recipe "geos" -include_recipe "proj4" +include_recipe "geodjango::geos" +include_recipe "geodjango::proj4" # Packages we require -package "postgresql-server-dev-8.4" +package "postgresql-server-dev-#{node[:postgresql][:version]}" package "libpq-dev" # for pg_config +package "libxml2-dev" -version = node[:postgis][:version] +version = node[:geodjango][:postgis][:version] remote_file "#{Chef::Config[:file_cache_path]}/postgis-#{version}.tar.gz" do source "http://postgis.refractions.net/download/postgis-#{version}.tar.gz" diff --git a/cookbooks/proj4/recipes/default.rb b/recipes/proj4.rb similarity index 87% rename from cookbooks/proj4/recipes/default.rb rename to recipes/proj4.rb index 09dab92..1f53c6c 100644 --- a/cookbooks/proj4/recipes/default.rb +++ b/recipes/proj4.rb @@ -1,7 +1,7 @@ include_recipe "build-essential" -version = node[:proj4][:version] -datumgrid = node[:proj4][:datumgrid][:version] +version = node[:geodjango][:proj4][:version] +datumgrid = node[:geodjango][:proj4][:datumgrid][:version] remote_file "#{Chef::Config[:file_cache_path]}/proj-#{version}.tar.gz" do source "http://download.osgeo.org/proj/proj-#{version}.tar.gz"