Modernize kosmos-mediawiki
This has been done with the help of `cookstyle` which is very useful to learn about breaking changes and updates in Chef. On wiki-1 I managed to update Chef up to 17.10.163. For version 18 I ran into an issue with the omnibus installer returning a 404 Refs #500
This commit is contained in:
		
							parent
							
								
									8052c67d23
								
							
						
					
					
						commit
						443910c7a2
					
				@ -28,6 +28,7 @@
 | 
			
		||||
      "timezone_iii::debian",
 | 
			
		||||
      "ntp::default",
 | 
			
		||||
      "ntp::apparmor",
 | 
			
		||||
      "kosmos-base::journald_conf",
 | 
			
		||||
      "kosmos-base::systemd_emails",
 | 
			
		||||
      "apt::unattended-upgrades",
 | 
			
		||||
      "kosmos-base::firewall",
 | 
			
		||||
@ -66,12 +67,13 @@
 | 
			
		||||
    "cloud": null,
 | 
			
		||||
    "chef_packages": {
 | 
			
		||||
      "chef": {
 | 
			
		||||
        "version": "15.13.8",
 | 
			
		||||
        "chef_root": "/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/chef-15.13.8/lib"
 | 
			
		||||
        "version": "17.10.163",
 | 
			
		||||
        "chef_root": "/opt/chef/embedded/lib/ruby/gems/3.0.0/gems/chef-17.10.163/lib",
 | 
			
		||||
        "chef_effortless": null
 | 
			
		||||
      },
 | 
			
		||||
      "ohai": {
 | 
			
		||||
        "version": "15.12.0",
 | 
			
		||||
        "ohai_root": "/opt/chef/embedded/lib/ruby/gems/2.6.0/gems/ohai-15.12.0/lib/ohai"
 | 
			
		||||
        "version": "17.9.7",
 | 
			
		||||
        "ohai_root": "/opt/chef/embedded/lib/ruby/gems/3.0.0/gems/ohai-17.9.7/lib/ohai"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
@ -3,7 +3,6 @@ maintainer       'Kosmos'
 | 
			
		||||
maintainer_email 'mail@kosmos.org'
 | 
			
		||||
license          'MIT'
 | 
			
		||||
description      'Installs/Configures kosmos-mediawiki'
 | 
			
		||||
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
 | 
			
		||||
version          '0.3.1'
 | 
			
		||||
 | 
			
		||||
depends "mediawiki"
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,9 @@
 | 
			
		||||
#
 | 
			
		||||
# Cookbook Name:: kosmos-mediawiki
 | 
			
		||||
# Recipe:: default
 | 
			
		||||
# Cookbook:: kosmos-mediawiki
 | 
			
		||||
# Recipe:: default.rb
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
include_recipe 'apt'
 | 
			
		||||
apt_update
 | 
			
		||||
include_recipe 'ark'
 | 
			
		||||
include_recipe 'composer'
 | 
			
		||||
 | 
			
		||||
@ -11,15 +11,15 @@ apt_package 'imagemagick'
 | 
			
		||||
 | 
			
		||||
server_name = 'wiki.kosmos.org'
 | 
			
		||||
 | 
			
		||||
node.override['mediawiki']['version']         = "1.34.2"
 | 
			
		||||
node.override['mediawiki']['webdir']          = "#{node['mediawiki']['docroot_dir']}/mediawiki-#{node['mediawiki']['version']}"
 | 
			
		||||
node.override['mediawiki']['version'] = "1.34.2"
 | 
			
		||||
node.override['mediawiki']['webdir'] = "#{node['mediawiki']['docroot_dir']}/mediawiki-#{node['mediawiki']['version']}"
 | 
			
		||||
node.override['mediawiki']['tarball']['name'] = "mediawiki-#{node['mediawiki']['version']}.tar.gz"
 | 
			
		||||
node.override['mediawiki']['tarball']['url']  = "https://releases.wikimedia.org/mediawiki/1.34/#{node['mediawiki']['tarball']['name']}"
 | 
			
		||||
node.override['mediawiki']['language_code']   = 'en'
 | 
			
		||||
node.override['mediawiki']['server_name']     = server_name
 | 
			
		||||
node.override['mediawiki']['site_name']       = 'Kosmos Wiki'
 | 
			
		||||
node.override['mediawiki']['tarball']['url'] = "https://releases.wikimedia.org/mediawiki/1.34/#{node['mediawiki']['tarball']['name']}"
 | 
			
		||||
node.override['mediawiki']['language_code'] = 'en'
 | 
			
		||||
node.override['mediawiki']['server_name'] = server_name
 | 
			
		||||
node.override['mediawiki']['site_name'] = 'Kosmos Wiki'
 | 
			
		||||
protocol = node.chef_environment == "development" ? "http" : "https"
 | 
			
		||||
node.override['mediawiki']['server']          = "#{protocol}://#{server_name}"
 | 
			
		||||
node.override['mediawiki']['server'] = "#{protocol}://#{server_name}"
 | 
			
		||||
mysql_credentials = data_bag_item('credentials', 'mysql')
 | 
			
		||||
mediawiki_credentials = data_bag_item('credentials', 'mediawiki')
 | 
			
		||||
 | 
			
		||||
@ -30,14 +30,14 @@ directory "#{node['mediawiki']['webdir']}/skins/common/images" do
 | 
			
		||||
  owner node['nginx']['user']
 | 
			
		||||
  group node['nginx']['group']
 | 
			
		||||
  recursive true
 | 
			
		||||
  mode 0750
 | 
			
		||||
  mode "750"
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
cookbook_file "#{node['mediawiki']['webdir']}/skins/common/images/kosmos.png" do
 | 
			
		||||
  source 'kosmos.png'
 | 
			
		||||
  owner node['nginx']['user']
 | 
			
		||||
  group node['nginx']['group']
 | 
			
		||||
  mode 0640
 | 
			
		||||
  mode "640"
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
directory "#{node['mediawiki']['webdir']}/.well-known/acme-challenge" do
 | 
			
		||||
@ -80,14 +80,14 @@ nginx_certbot_site server_name
 | 
			
		||||
# Extensions
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
mediawiki_credentials = Chef::EncryptedDataBagItem.load('credentials', 'mediawiki')
 | 
			
		||||
mediawiki_credentials = data_bag_item('credentials', 'mediawiki')
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# MediawikiHubot extension
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# requires curl extension
 | 
			
		||||
if platform?('ubuntu') && node[:platform_version].to_f < 16.04
 | 
			
		||||
if platform?('ubuntu') && node["platform_version"].to_f < 16.04
 | 
			
		||||
  package "php5-curl"
 | 
			
		||||
else
 | 
			
		||||
  package "php-curl"
 | 
			
		||||
@ -100,7 +100,7 @@ ark "MediawikiHubot" do
 | 
			
		||||
  action :cherry_pick
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
hubot_credentials = Chef::EncryptedDataBagItem.load('credentials', 'hal8000_xmpp')
 | 
			
		||||
hubot_credentials = data_bag_item('credentials', 'hal8000_xmpp')
 | 
			
		||||
webhook_token = hubot_credentials['webhook_token']
 | 
			
		||||
 | 
			
		||||
template "#{node['mediawiki']['webdir']}/extensions/MediawikiHubot/DefaultConfig.php" do
 | 
			
		||||
@ -145,7 +145,7 @@ end
 | 
			
		||||
 | 
			
		||||
ruby_block "configuration" do
 | 
			
		||||
  block do
 | 
			
		||||
    # FIXME This is internal Chef API and should not be used from recipes, as
 | 
			
		||||
    # FIXME: This is internal Chef API and should not be used from recipes, as
 | 
			
		||||
    # it is unsupported for that
 | 
			
		||||
    file = Chef::Util::FileEdit.new("#{node['mediawiki']['webdir']}/LocalSettings.php")
 | 
			
		||||
    file.search_file_replace_line(%r{\$wgLogo\ =\ \"\$wgResourceBasePath\/resources\/assets\/wiki.png\";},
 | 
			
		||||
@ -235,7 +235,7 @@ wfLoadExtension( 'LDAPAuthentication2' );
 | 
			
		||||
$wgGroupPermissions['*']['createaccount'] = false;
 | 
			
		||||
$wgGroupPermissions['*']['autocreateaccount'] = true;
 | 
			
		||||
                                 EOF
 | 
			
		||||
                                 )
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
      file.write_file
 | 
			
		||||
    end
 | 
			
		||||
@ -247,9 +247,7 @@ end
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
file "#{node['mediawiki']['webdir']}/composer.local.json" do
 | 
			
		||||
  requires = { "require": {
 | 
			
		||||
    "mediawiki/mermaid": "~1.0"
 | 
			
		||||
  }}.to_json
 | 
			
		||||
  requires = { "require": { "mediawiki/mermaid": "~1.0" } }.to_json
 | 
			
		||||
  content requires
 | 
			
		||||
  owner node['nginx']['user']
 | 
			
		||||
  group node['nginx']['group']
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user