/
vhost.rb
119 lines (105 loc) · 2.6 KB
/
vhost.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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#
# Cookbook Name:: et_www
# Recipe:: vhost
#
# Copyright (C) 2013 EverTrue, Inc.
#
# All rights reserved - Do Not Redistribute
#
# Install Debian/Ubuntu packages for PHP necessary for WP
%w(
php5-mysql
php5-curl
php5-gd
php5-imap
php5-mcrypt
php5-pspell
php5-xmlrpc
php5-apcu
).each do |pkg|
package pkg
end
# Install WP-CLI
remote_file '/usr/local/bin/wp' do
mode '0755'
source 'https://github.com/wp-cli/wp-cli/releases/download/v0.20.1/wp-cli-0.20.1.phar'
end
group node['et_www']['group'] do
members node['apache']['group']
action :modify
append true
end
%w(
stage-www
www
).each do |subdomain|
site_dir = "/var/www/#{subdomain}.evertrue.com"
[
site_dir,
"#{site_dir}/shared",
"#{site_dir}/shared/web",
"#{site_dir}/shared/web/app"
].each do |dir|
directory dir do
owner node['et_www']['user']
group node['apache']['group']
mode 02775
end
end
if subdomain == 'stage-www'
wp_env = 'staging'
db = 'stage-etwp'
else
wp_env = 'production'
db = 'etwp'
end
db_creds = data_bag_item('secrets', 'database_credentials')[node.chef_environment][db]
template "#{site_dir}/shared/.env" do
variables(
db_name: db,
db_user: db_creds['username'],
db_pass: db_creds['password'],
db_host: 'www.cg0lvth7azzh.us-east-1.rds.amazonaws.com',
wp_env: wp_env,
subdomain: subdomain
)
end
file "#{site_dir}/shared/web/.htaccess" do
owner node['et_www']['user']
group node['apache']['group']
mode '664'
end
if node['storage']['ephemeral_mounts']
directory "#{node['storage']['ephemeral_mounts'].first}/#{subdomain}/uploads" do
owner node['et_www']['user']
group node['apache']['group']
mode '2775'
recursive true
end
link "#{site_dir}/shared/web/app/uploads" do
to "#{node['storage']['ephemeral_mounts'].first}/#{subdomain}/uploads"
end
end
end
web_app '00_evertrue_com' do
server_name node['apache']['server_name']
server_aliases node['apache']['server_aliases']
docroot node['apache']['docroot']
allow_override %w(All)
end
web_app '20_stage_evertrue_com' do
server_name 'stage-www.evertrue.com'
server_aliases []
docroot '/var/www/stage-www.evertrue.com/current/web'
allow_override %w(All)
end
%w(
blog
nerds
).each do |site_name|
cookbook_file "/etc/apache2/sites-available/#{site_name}_evertrue_com.conf"
link "/etc/apache2/sites-enabled/50_#{site_name}_evertrue_com.conf" do
to "/etc/apache2/sites-available/#{site_name}_evertrue_com.conf"
notifies :reload, 'service[apache2]', :delayed
end
end