forked from chef-boneyard/cookbooks
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
postgresql v0.99.0, and move README from .rdoc to .md
- Loading branch information
jtimberman
committed
Nov 18, 2011
1 parent
ec0cbf6
commit 7823901
Showing
3 changed files
with
156 additions
and
57 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
Description | ||
=========== | ||
|
||
Installs and configures PostgreSQL as a client or a server. | ||
|
||
Changes/Roadmap | ||
============== | ||
|
||
## v 0.99.0 | ||
|
||
* Better support for Red Hat-family platforms | ||
* Integration with database cookbook | ||
* Make sure the postgres role is updated with a (secure) password | ||
|
||
Requirements | ||
============ | ||
|
||
## Platforms | ||
|
||
* Debian, Ubuntu | ||
* Red Hat/CentOS/Scientific (6.0+ required) - "EL6-family" | ||
* Fedora | ||
* SUSE | ||
|
||
Tested on: | ||
|
||
* Ubuntu 10.04, 11.10 | ||
* Red Hat 6.1, Scientific 6.1 | ||
|
||
## Cookboooks | ||
|
||
Requires Opscode's `openssl` cookbook for secure password generation. | ||
|
||
Requires a C compiler and development headers in order to build the | ||
`pg` RubyGem to provide Ruby bindings so they're available in other | ||
cookbooks. | ||
|
||
Opscode's `build-essential` cookbook provides this functionality on | ||
Debian, Ubuntu, and EL6-family. | ||
|
||
While not required, Opscode's `database` cookbook contains resources | ||
and providers that can interact with a PostgreSQL database. This | ||
cookbook is a dependency of that one. | ||
|
||
Attributes | ||
========== | ||
|
||
The following attributes are set based on the platform, see the | ||
`attributes/default.rb` file for default values. | ||
|
||
* `node['postgresql']['version']` - version of postgresql to manage | ||
* `node['postgresql']['dir']` - home directory of where postgresql | ||
data and configuration lives. | ||
|
||
The following attributes are generated in | ||
`recipe[postgresql::server]`. | ||
|
||
* `node['postgresql']['password']['postgres']` - randomly generated | ||
password by the `openssl` cookbook's library. | ||
* `node['postgresql']['ssl']` - whether to enable SSL (off for version | ||
8.3, true for 8.4). | ||
|
||
Recipes | ||
======= | ||
|
||
default | ||
------- | ||
|
||
Includes the client recipe. | ||
|
||
client | ||
------ | ||
|
||
Installs postgresql client packages and development headers during the | ||
compile phase. Also installs the `pg` Ruby gem during the compile | ||
phase so it can be made available for the `database` cookbook's | ||
resources, providers and libraries. | ||
|
||
server | ||
------ | ||
|
||
Includes the `server_debian` or `server_redhat` recipe to get the | ||
appropriate server packages installed and service managed. Also | ||
manages the configuration for the server: | ||
|
||
* generates a strong default password (via `openssl`) for `postgres` | ||
* sets the password for postgres | ||
* manages the `pg_hba.conf` file. | ||
|
||
server\_debian | ||
-------------- | ||
|
||
Installs the postgresql server packages, manages the postgresql | ||
service and the postgresql.conf file. | ||
|
||
server\_redhat | ||
-------------- | ||
|
||
Manages the postgres user and group (with UID/GID 26, per RHEL package | ||
conventions), installs the postgresql server packages, initializes the | ||
database and manages the postgresql service, and manages the | ||
postgresql.conf file. | ||
|
||
Resources/Providers | ||
=================== | ||
|
||
See the [database](http://community.opscode.com/cookbooks/database) | ||
for resources and providers that can be used for managing PostgreSQL | ||
users and databases. | ||
|
||
Usage | ||
===== | ||
|
||
On systems that need to connect to a PostgreSQL database, add to a run | ||
list `recipe[postgresql]` or `recipe[postgresql::client]`. | ||
|
||
This does install the `pg` RubyGem, which has native C extensions, so | ||
that the resources and providers can be used in the `database` | ||
cookbook, or elsewhere in the same Chef run. Use Opscode's | ||
`build-essential` cookbook to make sure the proper build tools are | ||
installed so the C extensions can be compiled. | ||
|
||
On systems that should be PostgreSQL servers, use | ||
`recipe[postgresql::server]` on a run list. This recipe does set a | ||
password and expect to use it. It performs a node.save when Chef is | ||
not running in `solo` mode. If you're using `chef-solo`, you'll need | ||
to set the attribute `node['postgresql']['password']['postgres']` in | ||
your node's `json_attribs` file or in a role. | ||
|
||
License and Author | ||
================== | ||
|
||
Author:: Joshua Timberman (<[email protected]>) | ||
Author:: Lamont Granquist (<[email protected]>) | ||
|
||
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. |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,17 +2,20 @@ | |
maintainer_email "[email protected]" | ||
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" | ||
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) | ||
version "0.99.0" | ||
recipe "postgresql", "Includes postgresql::client" | ||
recipe "postgresql::client", "Installs postgresql client package(s)" | ||
recipe "postgresql::server", "Installs postgresql server packages, templates" | ||
recipe "postgresql::redhat", "Installs postgresql server packages, redhat family style" | ||
recipe "postgresql::server", "Installs postgresql server packages, debian family style" | ||
recipe "postgresql::server_redhat", "Installs postgresql server packages, redhat family style" | ||
recipe "postgresql::server_debian", "Installs postgresql server packages, debian family style" | ||
|
||
%w{rhel centos fedora ubuntu debian suse scientific}.each do |os| | ||
%w{ ubuntu debian fedora suse }.each do |os| | ||
supports os | ||
end | ||
|
||
depends "openssl" | ||
%w{redhat centos scientific}.each do |el| | ||
supports el, ">= 6.0" | ||
end | ||
|
||
depends "openssl" |