/
default.rb
94 lines (80 loc) · 2.95 KB
/
default.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#
# Cookbook Name:: browsercms
# Recipe:: default
#
# Copyright 2009, Jim Van Fleet
#
# 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 "apache2::mod_rails"
include_recipe "passenger"
user = node[:railsapps][:browsercms][:user]
repo = node[:railsapps][:browsercms][:repo]
user_home = File.expand_path("~#{user}")
%w{browsercms}.each do |gem_dep|
gem_package gem_dep
end
r = gem_package "chef-deploy" do
source "http://gems.engineyard.com"
action :nothing
end
r.run_action(:install)
Gem.clear_paths
require "chef-deploy"
current_path = node[:railsapps][:browsercms][:app][:path] + "/current"
["#{node[:railsapps][:browsercms][:app][:log_dir]}",
"#{node[:railsapps][:browsercms][:app][:path]}",
"#{node[:railsapps][:browsercms][:app][:path]}/shared",
"#{node[:railsapps][:browsercms][:app][:path]}/shared/config"].each do |dir_name|
directory dir_name do
owner user
group node[:railsapps][:browsercms][:app][:group]
mode 0775
end
end
template "#{node[:railsapps][:browsercms][:app][:path]}/shared/config/database.yml" do
source "database.yml.erb"
owner user
group node[:railsapps][:browsercms][:app][:group]
variables :name => node[:railsapps][:browsercms][:db][:database],
:passwd => node[:railsapps][:browsercms][:db][:password]
mode "0664"
end
execute "setup-browsercms" do
command "rails #{node[:railsapps][:browsercms][:app][:sitename]} -d mysql -m http://browsercms.org/templates/#{node[:railsapps][:browsercms][:app][:style]}.rb"
creates "#{node[:railsapps][:browsercms][:app][:path]}/#{node[:railsapps][:browsercms][:app][:sitename]}/public/"
group "#{node[:railsapps][:browsercms][:app][:group]}"
cwd "#{node[:railsapps][:browsercms][:app][:path]}"
user "#{node[:railsapps][:browsercms][:app][:user]}"
action :run
umask 002
end
web_app "public-site" do
docroot "#{current_path}/public"
server_name node[:railsapps][:browsercms][:host]
log_dir node[:railsapps][:browsercms][:app][:log_dir]
max_pool_size node[:railsapps][:browsercms][:app][:pool_size]
rails_env "production"
template "public.conf.erb"
end
web_app "admin-site" do
docroot "#{current_path}/public"
server_name node[:railsapps][:browsercms][:host]
log_dir node[:railsapps][:browsercms][:app][:log_dir]
rails_env "production"
template "admin.conf.erb"
end
apache_site "default" do
enable false
end
# append config.action_controller.page_cache_directory = RAILS_ROOT + "/public/cache/" to config/environments/production.rb