Skip to content

Commit

Permalink
Added solo support for user creation
Browse files Browse the repository at this point in the history
Added postgresql dir creation
  • Loading branch information
Lispython committed Jan 28, 2013
1 parent 325640a commit c9f67a7
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 11 deletions.
9 changes: 9 additions & 0 deletions recipes/server_debian.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
#
# Cookbook Name:: postgresql
# Recipe:: server
Expand Down Expand Up @@ -86,6 +87,14 @@
action :nothing
end

directory "#{node[:postgresql][:dir]}" do
owner "postgres"
group "postgres"
mode 0600
recursive true
action :create
end

template "#{node[:postgresql][:dir]}/postgresql.conf" do
source "debian.postgresql.conf.erb"
owner "postgres"
Expand Down
28 changes: 17 additions & 11 deletions recipes/setup.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@
# "databases": [
# {
# "name":"some_db",
# "owner":"some_user",
# "owner":"some_user",
# "template":"template0",
# "encoding": "UTF8",
# "locale": "en_US.utf8"
# }
# ]
# ]
# }
# --------------------------------------

Expand All @@ -46,16 +46,22 @@
setup_items = []
node['postgresql']['setup_items'].each do |itemname|
databag = node['postgresql']['databag']
item = "id:#{itemname}"
search(databag, item) do |i|
if Chef::Config[:solo]
i = data_bag_item(databag, itemname.gsub(/[.]/, '-'))
setup_items << i
else
item = "id:#{itemname}"

search(databag, item) do |i|
setup_items << i
end
end
end

# We use a mix of psql commands and SQL statements to create users.
#
# To Create a User:
# sudo -u postgres createuser -s some_user
# sudo -u postgres createuser -s some_user
#
# To set their password:
# sudo -u postgres psql -c "ALTER USER some_user WITH PASSWORD 'secret';"
Expand All @@ -72,9 +78,9 @@
# sudo -u postgres psql -c "\du" | grep some_user

setup_items.each do |setup|

setup["users"].each do |user|

create_user_command = begin
if user['superuser']
"sudo -u postgres createuser -s #{user['username']};"
Expand All @@ -94,16 +100,16 @@
#{create_user_command} #{set_user_password}
EOH
not_if "sudo -u postgres psql -c \"\\du\" | grep #{user['username']}"
end
end
end
end

setup["databases"].each do |db|

create_database_command = begin
"sudo -u postgres createdb -E #{db['encoding']} -O #{db['owner']} " +
"--locale #{db['locale']} -T #{db['template']} #{db['name']}"
end

bash "create_database" do
user "root"
code <<-EOH
Expand Down

0 comments on commit c9f67a7

Please sign in to comment.