Permalink
Browse files

initial commit

  • Loading branch information...
0 parents commit a8754424a42e232a22d355654d4020e5b55560f8 @phlipper committed Jun 27, 2012
@@ -0,0 +1,6 @@
+*.tgz
+*.tar.gz
+vendor/bundle
+.bundle
+.DS_Store
+build/*
@@ -0,0 +1 @@
+1.9.3@chef-postgresql
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+Copyright © 2012 Phil Cohen <github@phlippers.net>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the “Software”), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
418 README.md

Large diffs are not rendered by default.

Oops, something went wrong.

Large diffs are not rendered by default.

Oops, something went wrong.
@@ -0,0 +1,18 @@
+name "postgresql"
+maintainer "Phil Cohen"
+maintainer_email "github@phlippers.net"
+license "MIT"
+description "Installs PostgreSQL, The world's most advanced open source database."
+long_description IO.read(File.join(File.dirname(__FILE__), "README.md"))
+version "0.1.0"
+
+recipe "postgresql", "Set up the apt repository and install dependent packages"
+recipe "postgresql::client", "Front-end programs for PostgreSQL 9.x"
+recipe "postgresql::server", "Object-relational SQL database, version 9.x server"
+recipe "postgresql::contrib", "Additional facilities for PostgreSQL"
+recipe "postgresql::dbg", "Debug symbols for the server daemon"
+recipe "postgresql::doc", "Documentation for the PostgreSQL database management system"
+recipe "postgresql::libpq", "PostgreSQL C client library and header files for libpq5 (PostgreSQL library)"
+recipe "postgresql::postgis", "Geographic objects support for PostgreSQL 9.x"
+
+supports "ubuntu"
@@ -0,0 +1,8 @@
+#
+# Cookbook Name:: postgresql
+# Recipe:: client
+#
+
+require_recipe "postgresql"
+
+package "postgresql-client-#{node["postgresql"]["version"]}"
@@ -0,0 +1,8 @@
+#
+# Cookbook Name:: postgresql
+# Recipe:: contrib
+#
+
+require_recipe "postgresql"
+
+package "postgresql-contrib-#{node["postgresql"]["version"]}"
@@ -0,0 +1,8 @@
+#
+# Cookbook Name:: postgresql
+# Recipe:: dbg
+#
+
+require_recipe "postgresql"
+
+package "postgresql-#{node["postgresql"]["version"]}-dbg"
@@ -0,0 +1,13 @@
+#
+# Cookbook Name:: postgresql
+# Recipe:: default
+#
+
+package "python-software-properties"
+
+execute "setup ppa apt repository" do
+ command "add-apt-repository ppa:pitti/postgresql && apt-get update"
+ not_if "test -f /etc/apt/sources.list.d/pitti-postgresql-#{node["lsb"]["codename"]}.list"
+end
+
+package "postgresql-common"
@@ -0,0 +1,8 @@
+#
+# Cookbook Name:: postgresql
+# Recipe:: doc
+#
+
+require_recipe "postgresql"
+
+package "postgresql-doc-#{node["postgresql"]["version"]}"
@@ -0,0 +1,9 @@
+#
+# Cookbook Name:: postgresql
+# Recipe:: libpq
+#
+
+require_recipe "postgresql"
+
+package "libpq5"
+package "libpq-dev"
@@ -0,0 +1,8 @@
+#
+# Cookbook Name:: postgresql
+# Recipe:: postgis
+#
+
+require_recipe "postgresql"
+
+package "postgresql-#{node["postgresql"]["version"]}-postgis"
@@ -0,0 +1,73 @@
+#
+# Cookbook Name:: postgresql
+# Recipe:: server
+#
+
+require_recipe "postgresql"
+
+pg_version = node["postgresql"]["version"]
+
+# install the package
+package "postgresql-#{pg_version}"
+
+
+# environment
+template "/etc/postgresql/#{pg_version}/main/environment" do
+ source "environment.erb"
+ owner "postgres"
+ group "postgres"
+ mode "0644"
+ notifies :restart, "service[postgresql]", :immediately
+end
+
+# pg_ctl
+template "/etc/postgresql/#{pg_version}/main/pg_ctl.conf" do
+ source "pg_ctl.conf.erb"
+ owner "postgres"
+ group "postgres"
+ mode "0644"
+ notifies :restart, "service[postgresql]", :immediately
+end
+
+# pg_hba
+template node["postgresql"]["hba_file"] do
+ source "pg_hba.conf.erb"
+ owner "postgres"
+ group "postgres"
+ mode "0640"
+ notifies :restart, "service[postgresql]", :immediately
+end
+
+# pg_ident
+template ["postgresql"]["ident_file"] do
+ source "pg_ident.conf.erb"
+ owner "postgres"
+ group "postgres"
+ mode "0640"
+ notifies :restart, "service[postgresql]", :immediately
+end
+
+# postgresql
+template "/etc/postgresql/#{pg_version}/main/postgresql.conf" do
+ source "postgresql.conf.erb"
+ owner "postgres"
+ group "postgres"
+ mode "0644"
+ notifies :restart, "service[postgresql]", :immediately
+end
+
+# start
+template "/etc/postgresql/#{pg_version}/main/start.conf" do
+ source "start.conf.erb"
+ owner "postgres"
+ group "postgres"
+ mode "0644"
+ notifies :restart, "service[postgresql]", :immediately
+end
+
+
+# define the service
+service "postgresql" do
+ supports :restart => true
+ action [:enable, :start]
+end
@@ -0,0 +1,11 @@
+# environment variables for postmaster process
+# This file has the same syntax as postgresql.conf:
+# VARIABLE = simple_value
+# VARIABLE2 = 'any value!'
+# I. e. you need to enclose any value which does not only consist of letters,
+# numbers, and '-', '_', '.' in single quotes. Shell commands are not
+# evaluated.
+
+<% node["postgresql"]["environment_variables"].each_pair do |k, v| %>
+<%= "#{k} = #{v}" %>
+<% end %>
@@ -0,0 +1,5 @@
+# Automatic pg_ctl configuration
+# This configuration file contains cluster specific options to be passed to
+# pg_ctl(1).
+
+pg_ctl_options = '<%= node["postgresql"]["pg_ctl_options"] %>'
@@ -0,0 +1,100 @@
+# 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 ADDRESS METHOD [OPTIONS]
+# hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
+# hostnossl DATABASE USER 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", "replication", a
+# database name, or a comma-separated list thereof. The "all"
+# keyword does not match "replication". Access to replication
+# must be enabled in a separate record (see example below).
+#
+# 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.
+#
+# ADDRESS specifies the set of hosts the record matches. It can be a
+# host name, or 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. A host name
+# that starts with a dot (.) matches a suffix of the actual host name.
+# Alternatively, you can write an IP address and netmask in separate
+# columns to specify the set of hosts. Instead of a CIDR-address, you
+# can write "samehost" to match any of the server's own IP addresses,
+# or "samenet" to match any address in any subnet that the server is
+# directly connected to.
+#
+# METHOD can be "trust", "reject", "md5", "password", "gss", "sspi",
+# "krb5", "ident", "peer", "pam", "ldap", "radius" 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", "samerole" or "replication" 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.
+
+<% node["postgresql"]["pg_hba"].each do |hba| %>
+<%= hba %>
+<% end %>
+
+# DO NOT DISABLE!
+# If you change this first entry you will need to make sure that the
+# database superuser can access the database using some other method.
+# Noninteractive access to all databases is required during automatic
+# maintenance (custom daily cronjobs, replication, and similar tasks).
+#
+# Database administrative login by Unix domain socket
+local all postgres peer
+
+# TYPE DATABASE USER ADDRESS METHOD
+
+# "local" is for Unix domain socket connections only
+local all all peer
+# IPv4 local connections:
+host all all 127.0.0.1/32 md5
+# IPv6 local connections:
+host all all ::1/128 md5
+# Allow replication connections from localhost, by a user with the
+# replication privilege.
+#local replication postgres peer
+#host replication postgres 127.0.0.1/32 md5
+#host replication postgres ::1/128 md5
@@ -0,0 +1,46 @@
+# PostgreSQL User Name Maps
+# =========================
+#
+# Refer to the PostgreSQL documentation, chapter "Client
+# Authentication" for a complete description. A short synopsis
+# follows.
+#
+# This file controls PostgreSQL user name mapping. It maps external
+# user names to their corresponding PostgreSQL user names. Records
+# are of the form:
+#
+# MAPNAME SYSTEM-USERNAME PG-USERNAME
+#
+# (The uppercase quantities must be replaced by actual values.)
+#
+# MAPNAME is the (otherwise freely chosen) map name that was used in
+# pg_hba.conf. SYSTEM-USERNAME is the detected user name of the
+# client. PG-USERNAME is the requested PostgreSQL user name. The
+# existence of a record specifies that SYSTEM-USERNAME may connect as
+# PG-USERNAME.
+#
+# If SYSTEM-USERNAME starts with a slash (/), it will be treated as a
+# regular expression. Optionally this can contain a capture (a
+# parenthesized subexpression). The substring matching the capture
+# will be substituted for \1 (backslash-one) if present in
+# PG-USERNAME.
+#
+# Multiple maps may be specified in this file and used by pg_hba.conf.
+#
+# No map names are defined in the default configuration. If all
+# system user names and PostgreSQL user names are the same, you don't
+# need anything in this file.
+#
+# 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
+# ----------------------------------
+
+# MAPNAME SYSTEM-USERNAME PG-USERNAME
+
+<% node["postgresql"]["pg_ident"].each do |ident| %>
+<%= ident %>
+<% end %>
Oops, something went wrong.

0 comments on commit a875442

Please sign in to comment.