91 lines
3.5 KiB
Ruby
91 lines
3.5 KiB
Ruby
#
|
|
# Cookbook Name:: wordpress
|
|
# Recipe:: app
|
|
#
|
|
# Copyright 2009-2010, Opscode, Inc.
|
|
#
|
|
# 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 "wordpress::database"
|
|
|
|
::Chef::Recipe.send(:include, Opscode::OpenSSL::Password)
|
|
node.set_unless['wordpress']['keys']['auth'] = secure_password
|
|
node.set_unless['wordpress']['keys']['secure_auth'] = secure_password
|
|
node.set_unless['wordpress']['keys']['logged_in'] = secure_password
|
|
node.set_unless['wordpress']['keys']['nonce'] = secure_password
|
|
node.set_unless['wordpress']['salt']['auth'] = secure_password
|
|
node.set_unless['wordpress']['salt']['secure_auth'] = secure_password
|
|
node.set_unless['wordpress']['salt']['logged_in'] = secure_password
|
|
node.set_unless['wordpress']['salt']['nonce'] = secure_password
|
|
node.save unless Chef::Config[:solo]
|
|
|
|
directory node['wordpress']['dir'] do
|
|
action :create
|
|
recursive true
|
|
if platform_family?('windows')
|
|
rights :read, 'Everyone'
|
|
else
|
|
owner node['wordpress']['install']['user']
|
|
group node['wordpress']['install']['group']
|
|
mode '00755'
|
|
end
|
|
end
|
|
|
|
archive = platform_family?('windows') ? 'wordpress.zip' : 'wordpress.tar.gz'
|
|
|
|
if platform_family?('windows')
|
|
windows_zipfile node['wordpress']['parent_dir'] do
|
|
source node['wordpress']['url']
|
|
action :unzip
|
|
not_if {::File.exists?("#{node['wordpress']['dir']}\\index.php")}
|
|
end
|
|
else
|
|
tar_extract node['wordpress']['url'] do
|
|
target_dir node['wordpress']['dir']
|
|
creates File.join(node['wordpress']['dir'], 'index.php')
|
|
user node['wordpress']['install']['user']
|
|
group node['wordpress']['install']['group']
|
|
tar_flags [ '--strip-components 1' ]
|
|
not_if { ::File.exists?("#{node['wordpress']['dir']}/index.php") }
|
|
end
|
|
end
|
|
|
|
template "#{node['wordpress']['dir']}/wp-config.php" do
|
|
source 'wp-config.php.erb'
|
|
mode node['wordpress']['config_perms']
|
|
variables(
|
|
:db_name => node['wordpress']['db']['name'],
|
|
:db_user => node['wordpress']['db']['user'],
|
|
:db_password => node['wordpress']['db']['pass'],
|
|
:db_host => node['wordpress']['db']['host'],
|
|
:db_prefix => node['wordpress']['db']['prefix'],
|
|
:db_charset => node['wordpress']['db']['charset'],
|
|
:db_collate => node['wordpress']['db']['collate'],
|
|
:auth_key => node['wordpress']['keys']['auth'],
|
|
:secure_auth_key => node['wordpress']['keys']['secure_auth'],
|
|
:logged_in_key => node['wordpress']['keys']['logged_in'],
|
|
:nonce_key => node['wordpress']['keys']['nonce'],
|
|
:auth_salt => node['wordpress']['salt']['auth'],
|
|
:secure_auth_salt => node['wordpress']['salt']['secure_auth'],
|
|
:logged_in_salt => node['wordpress']['salt']['logged_in'],
|
|
:nonce_salt => node['wordpress']['salt']['nonce'],
|
|
:lang => node['wordpress']['languages']['lang'],
|
|
:allow_multisite => node['wordpress']['allow_multisite'],
|
|
:wp_config_options => node['wordpress']['wp_config_options']
|
|
)
|
|
owner node['wordpress']['install']['user']
|
|
group node['wordpress']['install']['group']
|
|
action :create
|
|
end
|