From 443910c7a2efaaa40df652f5749f288ed8b91c4e Mon Sep 17 00:00:00 2001 From: Greg Karekinian Date: Wed, 9 Jul 2025 11:18:14 +0200 Subject: [PATCH] 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 --- nodes/wiki-1.json | 10 +++-- site-cookbooks/kosmos-mediawiki/metadata.rb | 1 - .../kosmos-mediawiki/recipes/default.rb | 38 +++++++++---------- 3 files changed, 24 insertions(+), 25 deletions(-) diff --git a/nodes/wiki-1.json b/nodes/wiki-1.json index b4fec9e..8b20898 100644 --- a/nodes/wiki-1.json +++ b/nodes/wiki-1.json @@ -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" } } }, diff --git a/site-cookbooks/kosmos-mediawiki/metadata.rb b/site-cookbooks/kosmos-mediawiki/metadata.rb index 6e324f4..2b093da 100644 --- a/site-cookbooks/kosmos-mediawiki/metadata.rb +++ b/site-cookbooks/kosmos-mediawiki/metadata.rb @@ -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" diff --git a/site-cookbooks/kosmos-mediawiki/recipes/default.rb b/site-cookbooks/kosmos-mediawiki/recipes/default.rb index 3a728fa..2ed9194 100644 --- a/site-cookbooks/kosmos-mediawiki/recipes/default.rb +++ b/site-cookbooks/kosmos-mediawiki/recipes/default.rb @@ -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']