Skip to content

Commit

Permalink
Merge branch 'COOK-1508'
Browse files Browse the repository at this point in the history
  • Loading branch information
jtimberman committed Nov 5, 2012
2 parents 3829fc8 + 202cb8f commit 706af89
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 41 deletions.
45 changes: 23 additions & 22 deletions attributes/default.rb
Expand Up @@ -22,55 +22,55 @@

case
when platform_version.to_f <= 5.0
default[:postgresql][:version] = "8.3"
default['postgresql']['version'] = "8.3"
when platform_version.to_f == 6.0
default[:postgresql][:version] = "8.4"
default['postgresql']['version'] = "8.4"
else
default[:postgresql][:version] = "9.1"
default['postgresql']['version'] = "9.1"
end

set[:postgresql][:dir] = "/etc/postgresql/#{node[:postgresql][:version]}/main"
set['postgresql']['dir'] = "/etc/postgresql/#{node['postgresql']['version']}/main"
default['postgresql']['client']['packages'] = %w{postgresql-client libpq-dev}
default['postgresql']['server']['packages'] = %w{postgresql}

when "ubuntu"

case
when platform_version.to_f <= 9.04
default[:postgresql][:version] = "8.3"
default['postgresql']['version'] = "8.3"
when platform_version.to_f <= 11.04
default[:postgresql][:version] = "8.4"
default['postgresql']['version'] = "8.4"
else
default[:postgresql][:version] = "9.1"
default['postgresql']['version'] = "9.1"
end

set[:postgresql][:dir] = "/etc/postgresql/#{node[:postgresql][:version]}/main"
set['postgresql']['dir'] = "/etc/postgresql/#{node['postgresql']['version']}/main"
default['postgresql']['client']['packages'] = %w{postgresql-client libpq-dev}
default['postgresql']['server']['packages'] = %w{postgresql}

when "fedora"

if platform_version.to_f <= 12
default[:postgresql][:version] = "8.3"
default['postgresql']['version'] = "8.3"
else
default[:postgresql][:version] = "8.4"
default['postgresql']['version'] = "8.4"
end

set[:postgresql][:dir] = "/var/lib/pgsql/data"
set['postgresql']['dir'] = "/var/lib/pgsql/data"
default['postgresql']['client']['packages'] = %w{postgresql-devel}
default['postgresql']['server']['packages'] = %w{postgresql-server}

when "amazon"

default[:postgresql][:version] = "8.4"
set[:postgresql][:dir] = "/var/lib/pgsql/data"
default['postgresql']['version'] = "8.4"
set['postgresql']['dir'] = "/var/lib/pgsql/data"
default['postgresql']['client']['packages'] = %w{postgresql-devel}
default['postgresql']['server']['packages'] = %w{postgresql-server}

when "redhat","centos","scientific"

default[:postgresql][:version] = "8.4"
set[:postgresql][:dir] = "/var/lib/pgsql/data"
default['postgresql']['version'] = "8.4"
set['postgresql']['dir'] = "/var/lib/pgsql/data"

if node['platform_version'].to_f >= 6.0
default['postgresql']['client']['packages'] = %w{postgresql-devel}
Expand All @@ -82,21 +82,22 @@

when "suse"

if platform_version.to_f <= 11.1
default[:postgresql][:version] = "8.3"
case
when platform_version.to_f <= 11.1
default['postgresql']['version'] = "8.3"
else
default[:postgresql][:version] = "8.4"
default['postgresql']['version'] = "9.0"
end

set[:postgresql][:dir] = "/var/lib/pgsql/data"
set['postgresql']['dir'] = "/var/lib/pgsql/data"
default['postgresql']['client']['packages'] = %w{postgresql-client libpq-dev}
default['postgresql']['server']['packages'] = %w{postgresql-server}

else
default[:postgresql][:version] = "8.4"
set[:postgresql][:dir] = "/etc/postgresql/#{node[:postgresql][:version]}/main"
default['postgresql']['version'] = "8.4"
set['postgresql']['dir'] = "/etc/postgresql/#{node['postgresql']['version']}/main"
default['postgresql']['client']['packages'] = ["postgresql"]
default['postgresql']['server']['packages'] = ["postgresql"]
end

default[:postgresql][:listen_addresses] = "localhost"
default['postgresql']['listen_addresses'] = "localhost"
19 changes: 9 additions & 10 deletions recipes/server.rb
Expand Up @@ -24,30 +24,29 @@
include_recipe "postgresql::client"

# randomly generate postgres password
node.set_unless[:postgresql][:password][:postgres] = secure_password
node.set_unless['postgresql']['password']['postgres'] = secure_password
node.save unless Chef::Config[:solo]

case node[:postgresql][:version]
when "8.3"
node.default[:postgresql][:ssl] = "off"
when "8.4"
node.default[:postgresql][:ssl] = "true"
if node['postgresql']['version'].to_f <= 8.3
node.default['postgresql']['ssl'] = "off"
else
node.default['postgresql']['ssl'] = "true"
end

# Include the right "family" recipe for installing the server
# since they do things slightly differently.
case node.platform
case node['platform']
when "redhat", "centos", "fedora", "suse", "scientific", "amazon"
include_recipe "postgresql::server_redhat"
when "debian", "ubuntu"
include_recipe "postgresql::server_debian"
end

template "#{node[:postgresql][:dir]}/pg_hba.conf" do
template "#{node['postgresql']['dir']}/pg_hba.conf" do
source "pg_hba.conf.erb"
owner "postgres"
group "postgres"
mode 0600
mode 00600
notifies :reload, resources(:service => "postgresql"), :immediately
end

Expand All @@ -58,7 +57,7 @@
bash "assign-postgres-password" do
user 'postgres'
code <<-EOH
echo "ALTER ROLE postgres ENCRYPTED PASSWORD '#{node[:postgresql][:password][:postgres]}';" | psql
echo "ALTER ROLE postgres ENCRYPTED PASSWORD '#{node['postgresql']['password']['postgres']}';" | psql
EOH
not_if "echo '\connect' | PGPASSWORD=#{node['postgresql']['password']['postgres']} psql --username=postgres --no-password -h localhost"
action :run
Expand Down
12 changes: 6 additions & 6 deletions recipes/server_debian.rb
Expand Up @@ -21,11 +21,11 @@

include_recipe "postgresql::client"

case node[:postgresql][:version]
when "8.3"
node.default[:postgresql][:ssl] = "off"
else # > 8.3
node.default[:postgresql][:ssl] = "true"

if node['postgresql']['version'].to_f <= 8.3
node.default['postgresql']['ssl'] = "off"
else
node.default['postgresql']['ssl'] = "true"
end

node['postgresql']['server']['packages'].each do |pg_pack|
Expand Down Expand Up @@ -55,7 +55,7 @@
action [:enable, :start]
end

template "#{node[:postgresql][:dir]}/postgresql.conf" do
template "#{node['postgresql']['dir']}/postgresql.conf" do
source "debian.postgresql.conf.erb"
owner "postgres"
group "postgres"
Expand Down
21 changes: 18 additions & 3 deletions recipes/server_redhat.rb
Expand Up @@ -44,16 +44,31 @@
end
end

execute "/sbin/service postgresql initdb" do
not_if { ::FileTest.exist?(File.join(node.postgresql.dir, "PG_VERSION")) }
case node['platform']
when "redhat","centos","scientific"
case
when node['platform_version'].to_f >= 6.0
package "postgresql-server"
else
package "postgresql#{node['postgresql']['version'].split('.').join}-server"
end
when "fedora","suse"
package "postgresql-server"
end

# Following not valid for 9.x version of postgresql
if node['postgresql']['version'].to_f < 9.0
execute "/sbin/service postgresql initdb" do
not_if { ::FileTest.exist?(File.join(node['postgresql']['dir'], "PG_VERSION")) }
end
end

service "postgresql" do
supports :restart => true, :status => true, :reload => true
action [:enable, :start]
end

template "#{node[:postgresql][:dir]}/postgresql.conf" do
template "#{node['postgresql']['dir']}/postgresql.conf" do
source "redhat.postgresql.conf.erb"
owner "postgres"
group "postgres"
Expand Down

0 comments on commit 706af89

Please sign in to comment.