Update cookbooks
This commit is contained in:
@@ -1,16 +1,26 @@
|
||||
default["mediawiki"]["version"] = "1.23.1"
|
||||
default["mediawiki"]["webdir"] = node['apache']['docroot_dir'] + "/mediawiki-" + default["mediawiki"]["version"]
|
||||
default["mediawiki"]["version"] = "1.26.2"
|
||||
default["mediawiki"]["docroot_dir"] = "/var/www"
|
||||
default["mediawiki"]["webdir"] = "#{default["mediawiki"]["docroot_dir"]}/mediawiki-#{default["mediawiki"]["version"]}"
|
||||
default["mediawiki"]["tarball"]["name"] = "mediawiki-" + default["mediawiki"]["version"] + ".tar.gz"
|
||||
default["mediawiki"]["tarball"]["url"] = "https://releases.wikimedia.org/mediawiki/1.23/" + default["mediawiki"]["tarball"]["name"]
|
||||
default["mediawiki"]["database"]["name"] = "mediawiki"
|
||||
default["mediawiki"]["database"]["user"] = "mediawiki"
|
||||
default["mediawiki"]["database"]["password"] = "Ub3rPa55w0rd"
|
||||
default["mediawiki"]["tarball"]["url"] = "https://releases.wikimedia.org/mediawiki/1.26/" + default["mediawiki"]["tarball"]["name"]
|
||||
default["mediawiki"]["server_name"] = "wiki.localhost"
|
||||
default["mediawiki"]["scriptpath"] = ""
|
||||
default['mysql']['server_root_password'] = 'Fak3Pa55w0rd'
|
||||
|
||||
default["mediawiki"]["server"] = "http://" + default["mediawiki"]["server_name"]
|
||||
default["mediawiki"]["server"] = "http://" + default["mediawiki"]["server_name"]
|
||||
default["mediawiki"]["site_name"] = "my Wiki"
|
||||
default["mediawiki"]["language_code"] = "fr"
|
||||
default["mediawiki"]["language_code"] = "en"
|
||||
default["mediawiki"]["admin_user"] = "administrator"
|
||||
default["mediawiki"]["admin_password"] = "admin"
|
||||
|
||||
default["mediawiki"]["php_options"] = { "php_admin_value[upload_max_filesize]" => "50M", "php_admin_value[post_max_size]" => "55M" }
|
||||
|
||||
default['mediawiki']['db']['root_password'] = 'my_root_password'
|
||||
default['mediawiki']['db']['instance_name'] = 'default'
|
||||
default['mediawiki']['db']['name'] = "mediawikidb"
|
||||
default['mediawiki']['db']['user'] = "mediawikiuser"
|
||||
default['mediawiki']['db']['pass'] = nil
|
||||
default['mediawiki']['db']['prefix'] = 'wp_'
|
||||
default['mediawiki']['db']['host'] = 'localhost'
|
||||
default['mediawiki']['db']['port'] = '3307' # Must be a string
|
||||
default['mediawiki']['db']['charset'] = 'utf8'
|
||||
default['mediawiki']['db']['collate'] = ''
|
||||
|
||||
@@ -3,12 +3,15 @@ maintainer 'pulsation'
|
||||
license 'BSD'
|
||||
description 'Installs/Configures mediawiki'
|
||||
long_description 'Installs/Configures mediawiki'
|
||||
version '0.1.0'
|
||||
version '0.2.0'
|
||||
|
||||
depends 'apache2'
|
||||
depends 'php'
|
||||
depends 'mysql'
|
||||
depends 'database'
|
||||
depends 'nginx'
|
||||
depends 'mysql2_chef_gem'
|
||||
depends 'php-fpm'
|
||||
|
||||
attribute 'mediawiki/version',
|
||||
:display_name => "Mediawiki version",
|
||||
|
||||
10
cookbooks/mediawiki/recipes/apache2.rb
Normal file
10
cookbooks/mediawiki/recipes/apache2.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
include_recipe "apache2"
|
||||
include_recipe "apache2::mod_php5"
|
||||
include_recipe "apache2::mod_rewrite"
|
||||
|
||||
# Add virtualhost
|
||||
web_app "mediawiki" do
|
||||
server_name node["mediawiki"]["server_name"]
|
||||
docroot node["mediawiki"]["webdir"]
|
||||
end
|
||||
|
||||
63
cookbooks/mediawiki/recipes/database.rb
Normal file
63
cookbooks/mediawiki/recipes/database.rb
Normal file
@@ -0,0 +1,63 @@
|
||||
::Chef::Recipe.send(:include, Opscode::OpenSSL::Password)
|
||||
|
||||
node.set_unless['mediawiki']['db']['pass'] = secure_password
|
||||
node.save unless Chef::Config[:solo]
|
||||
|
||||
db = node["mediawiki"]["db"]
|
||||
|
||||
mysql_client "default" do
|
||||
action :create
|
||||
end
|
||||
|
||||
mysql2_chef_gem "default" do
|
||||
action :install
|
||||
end
|
||||
|
||||
mysql_service db["instance_name"] do
|
||||
port db["port"]
|
||||
initial_root_password db["root_password"]
|
||||
action [:create, :start]
|
||||
end
|
||||
|
||||
socket = "/var/run/mysql-#{db['instance_name']}/mysqld.sock"
|
||||
|
||||
if node['platform_family'] == 'debian'
|
||||
link '/var/run/mysqld/mysqld.sock' do
|
||||
to socket
|
||||
not_if 'test -f /var/run/mysqld/mysqld.sock'
|
||||
end
|
||||
elsif node['platform_family'] == 'rhel'
|
||||
link '/var/lib/mysql/mysql.sock' do
|
||||
to socket
|
||||
not_if 'test -f /var/lib/mysql/mysql.sock'
|
||||
end
|
||||
end
|
||||
|
||||
# Database connection information
|
||||
mysql_connection_info = {
|
||||
:host => "localhost",
|
||||
:username => "root",
|
||||
:socket => socket,
|
||||
:password => db["root_password"]
|
||||
}
|
||||
|
||||
# Create new database
|
||||
mysql_database db["name"] do
|
||||
connection mysql_connection_info
|
||||
action :create
|
||||
end
|
||||
|
||||
# Create new user
|
||||
mysql_database_user db["user"] do
|
||||
connection mysql_connection_info
|
||||
password db["pass"]
|
||||
action :create
|
||||
end
|
||||
|
||||
# Grant privilages to user
|
||||
mysql_database_user db["user"] do
|
||||
connection mysql_connection_info
|
||||
database_name db["name"]
|
||||
privileges [:all]
|
||||
action :grant
|
||||
end
|
||||
@@ -8,61 +8,25 @@
|
||||
#
|
||||
|
||||
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"
|
||||
|
||||
include_recipe "mediawiki::database"
|
||||
|
||||
# Download mediawiki tarball
|
||||
remote_file "#{Chef::Config[:file_cache_path]}/" + node['mediawiki']['tarball']['name'] do
|
||||
remote_file "#{Chef::Config[:file_cache_path]}/#{node['mediawiki']['tarball']['name']}" do
|
||||
source node['mediawiki']['tarball']['url']
|
||||
notifies :run, "bash[extract_mediawiki]", :immediately
|
||||
end
|
||||
|
||||
# Extract mediawiki tarball
|
||||
bash "extract_mediawkiki" do
|
||||
bash "extract_mediawiki" 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"]
|
||||
cwd node["mediawiki"]["docroot_dir"]
|
||||
code "tar -zxf #{Chef::Config[:file_cache_path]}/#{node['mediawiki']['tarball']['name']}; chown -R #{node['nginx']['user']}:#{node['nginx']['group']} #{node['mediawiki']['docroot_dir']}"
|
||||
action :nothing
|
||||
end
|
||||
|
||||
# Additional packages
|
||||
@@ -70,31 +34,33 @@ 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
|
||||
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"] +
|
||||
bash "configure_mediawiki_database" do
|
||||
user node["nginx"]["user"]
|
||||
cwd node["mediawiki"]["webdir"]
|
||||
code "php maintenance/install.php" +
|
||||
" --pass '" + node["mediawiki"]["admin_password"] +
|
||||
"' --dbname '" + node["mediawiki"]["db"]["name"] +
|
||||
"' --dbpass '" + node["mediawiki"]["db"]["pass"] +
|
||||
"' --dbuser '" + node["mediawiki"]["db"]["user"] +
|
||||
"' --server '" + node["mediawiki"]["server"] +
|
||||
"' --scriptpath '" + node["mediawiki"]["scriptpath"] +
|
||||
"' --lang '" + node["mediawiki"]["language_code"] +
|
||||
"' '" + node["mediawiki"]["site_name"] + "' '" + node["mediawiki"]["admin_user"] + "'"
|
||||
action :run
|
||||
not_if { File.exist? "#{node["mediawiki"]["webdir"]}/LocalSettings.php" }
|
||||
action :run
|
||||
end
|
||||
|
||||
file "#{node["mediawiki"]["webdir"]}/LocalSettings.php" do
|
||||
mode "0640"
|
||||
owner node["nginx"]["user"]
|
||||
group node["nginx"]["group"]
|
||||
end
|
||||
|
||||
59
cookbooks/mediawiki/recipes/nginx.rb
Normal file
59
cookbooks/mediawiki/recipes/nginx.rb
Normal file
@@ -0,0 +1,59 @@
|
||||
#
|
||||
# Cookbook Name:: mediawiki
|
||||
# Recipe:: nginx
|
||||
#
|
||||
|
||||
node.set_unless['php-fpm']['pools'] = []
|
||||
|
||||
include_recipe "php-fpm"
|
||||
include_recipe 'php-fpm::repository' unless node['php-fpm']['skip_repository_install']
|
||||
|
||||
if node['php-fpm']['package_name'].nil?
|
||||
if platform_family?("rhel")
|
||||
php_fpm_package_name = "php-fpm"
|
||||
else
|
||||
php_fpm_package_name = "php5-fpm"
|
||||
end
|
||||
else
|
||||
php_fpm_package_name = node['php-fpm']['package_name']
|
||||
end
|
||||
|
||||
package php_fpm_package_name do
|
||||
action :install
|
||||
end
|
||||
|
||||
if node['php-fpm']['service_name'].nil?
|
||||
php_fpm_service_name = php_fpm_package_name
|
||||
else
|
||||
php_fpm_service_name = node['php-fpm']['service_name']
|
||||
end
|
||||
|
||||
service "php-fpm" do
|
||||
service_name php_fpm_service_name
|
||||
supports :start => true, :stop => true, :restart => true, :reload => true
|
||||
action [ :enable, :start ]
|
||||
end
|
||||
|
||||
php_fpm_pool "www" do
|
||||
enable false
|
||||
end
|
||||
|
||||
php_fpm_pool "mediawiki" do
|
||||
listen "127.0.0.1:9002"
|
||||
user node['nginx']['user']
|
||||
group node['nginx']['group']
|
||||
listen_owner node['nginx']['user']
|
||||
listen_group node['nginx']['group']
|
||||
php_options node['mediawiki']['php_options']
|
||||
start_servers 5
|
||||
enable true
|
||||
end
|
||||
|
||||
include_recipe "php::module_mysql"
|
||||
include_recipe "nginx"
|
||||
|
||||
directory node["mediawiki"]["docroot_dir"] do
|
||||
user node['nginx']['user']
|
||||
group node['nginx']['group']
|
||||
recursive true
|
||||
end
|
||||
Reference in New Issue
Block a user