101 lines
2.5 KiB
Ruby
101 lines
2.5 KiB
Ruby
#
|
||
# Cookbook Name:: mediawiki
|
||
# Recipe:: default
|
||
#
|
||
# Copyright (C) 2014 YOUR_NAME
|
||
#
|
||
# All rights reserved - Do Not Redistribute
|
||
#
|
||
|
||
include_recipe "apt"
|
||
include_recipe "apache2"
|
||
include_recipe "apache2::mod_php5"
|
||
include_recipe "apache2::mod_rewrite"
|
||
include_recipe "mysql::server"
|
||
include_recipe "database::mysql"
|
||
|
||
include_recipe "php::default"
|
||
include_recipe "php::module_apc"
|
||
include_recipe "php::module_mysql"
|
||
|
||
# Download mediawiki tarball
|
||
remote_file "#{Chef::Config[:file_cache_path]}/" + node['mediawiki']['tarball']['name'] do
|
||
source node['mediawiki']['tarball']['url']
|
||
end
|
||
|
||
# Extract mediawiki tarball
|
||
bash "extract_mediawkiki" do
|
||
user "root"
|
||
cwd node['apache']['docroot_dir']
|
||
code "tar -zxf #{Chef::Config[:file_cache_path]}/" + node['mediawiki']['tarball']['name']
|
||
action :run
|
||
end
|
||
|
||
# Database connection information
|
||
mysql_connection_info = {
|
||
:host => 'localhost',
|
||
:username => 'root',
|
||
:password => node['mysql']['server_root_password']
|
||
}
|
||
|
||
# Create new database
|
||
mysql_database node['mediawiki']['database']['name'] do
|
||
connection mysql_connection_info
|
||
action :create
|
||
end
|
||
|
||
# Create new user
|
||
mysql_database_user node['mediawiki']['database']['user'] do
|
||
connection mysql_connection_info
|
||
password node['mediawiki']['database']['password']
|
||
action :create
|
||
end
|
||
|
||
# Grant privilages to user
|
||
mysql_database_user node['mediawiki']['database']['user'] do
|
||
connection mysql_connection_info
|
||
database_name node["mediawiki"]["database"]["name"]
|
||
privileges [:all]
|
||
action :grant
|
||
end
|
||
|
||
# Add virtualhost
|
||
web_app "mediawiki" do
|
||
server_name node["mediawiki"]["server_name"]
|
||
docroot node["mediawiki"]["webdir"]
|
||
end
|
||
|
||
# Additional packages
|
||
case node["platform_family"]
|
||
when "rhel"
|
||
package "php-xml"
|
||
package "libicu-devel"
|
||
service "apache2" do
|
||
action :restart
|
||
end
|
||
when "debian"
|
||
package "libicu-dev"
|
||
end
|
||
|
||
|
||
php_pear "intl" do
|
||
action :install
|
||
end
|
||
|
||
# Configure mediawiki database
|
||
bash "configure_mediawkiki_database" do
|
||
user "root"
|
||
cwd node["mediawiki"]["webdir"]
|
||
code "php maintenance/install.php" +
|
||
" --pass '" + node["mediawiki"]["admin_password"] +
|
||
"' --dbname '" + node["mediawiki"]["database"]["name"] +
|
||
"' --dbpass '" + node["mediawiki"]["database"]["password"] +
|
||
"' --dbuser '" + node["mediawiki"]["database"]["name"] +
|
||
"' --server '" + node["mediawiki"]["server"] +
|
||
"' --scriptpath '" + node["mediawiki"]["scriptpath"] +
|
||
"' --lang '" + node["mediawiki"]["language_code"] +
|
||
"' '" + node["mediawiki"]["site_name"] + "' '" + node["mediawiki"]["admin_user"] + "'"
|
||
action :run
|
||
end
|
||
|