diff --git a/site-cookbooks/kosmos-mediawiki/metadata.rb b/site-cookbooks/kosmos-mediawiki/metadata.rb index c25037b..49573c1 100644 --- a/site-cookbooks/kosmos-mediawiki/metadata.rb +++ b/site-cookbooks/kosmos-mediawiki/metadata.rb @@ -10,3 +10,5 @@ depends "mediawiki" depends "firewall" depends "ark" depends "backup" +depends "kosmos-nginx" +depends "kosmos-base" diff --git a/site-cookbooks/kosmos-mediawiki/recipes/default.rb b/site-cookbooks/kosmos-mediawiki/recipes/default.rb index ffb8c4e..7f151d3 100644 --- a/site-cookbooks/kosmos-mediawiki/recipes/default.rb +++ b/site-cookbooks/kosmos-mediawiki/recipes/default.rb @@ -50,22 +50,30 @@ end include_recipe "mediawiki" include_recipe "kosmos-nginx" include_recipe "mediawiki::nginx" -include_recipe "kosmos-base::letsencrypt" -execute "letsencrypt cert for wiki.kosmos.org" do - command "./certbot-auto certonly --webroot --agree-tos --email ops@5apps.com --webroot-path #{node["mediawiki"]["docroot_dir"]} -d wiki.kosmos.org -n" - cwd "/usr/local/certbot" - not_if { File.exist? "/etc/letsencrypt/live/wiki.kosmos.org/fullchain.pem" } - notifies :reload, "service[nginx]", :delayed +unless node.chef_environment == "development" + include_recipe "kosmos-base::letsencrypt" + + execute "letsencrypt cert for wiki.kosmos.org" do + command "./certbot-auto certonly --webroot --agree-tos --email ops@5apps.com --webroot-path #{node["mediawiki"]["docroot_dir"]} -d wiki.kosmos.org -n" + cwd "/usr/local/certbot" + not_if { File.exist? "/etc/letsencrypt/live/wiki.kosmos.org/fullchain.pem" } + notifies :reload, "service[nginx]", :delayed + end +end +if File.exist? "/etc/letsencrypt/live/wiki.kosmos.org/fullchain.pem" + ssl_cert = "/etc/letsencrypt/live/wiki.kosmos.org/fullchain.pem" +end +if File.exist? "/etc/letsencrypt/live/wiki.kosmos.org/privkey.pem" + ssl_key = "/etc/letsencrypt/live/wiki.kosmos.org/privkey.pem" end - template "#{node['nginx']['dir']}/sites-available/mediawiki" do source "nginx.conf.erb" variables( docroot: node['mediawiki']['webdir'], server_name: node['mediawiki']['server_name'], - ssl_cert: "/etc/letsencrypt/live/wiki.kosmos.org/fullchain.pem", - ssl_key: "/etc/letsencrypt/live/wiki.kosmos.org/privkey.pem" + ssl_cert: ssl_cert, + ssl_key: ssl_key ) action :create notifies :reload, "service[nginx]", :delayed @@ -90,7 +98,11 @@ end # MediawikiHubot extension # requires curl extension -package "php5-curl" +if platform?('ubuntu') && node[:platform_version].to_f < 16.04 + package "php5-curl" +else + package "php-curl" +end ark "MediawikiHubot" do url "https://github.com/67P/mediawiki-hubot/archive/master.zip" diff --git a/site-cookbooks/kosmos-mediawiki/templates/default/nginx.conf.erb b/site-cookbooks/kosmos-mediawiki/templates/default/nginx.conf.erb index 0154d5f..d1eea31 100644 --- a/site-cookbooks/kosmos-mediawiki/templates/default/nginx.conf.erb +++ b/site-cookbooks/kosmos-mediawiki/templates/default/nginx.conf.erb @@ -1,6 +1,8 @@ server { listen 80; + <% if File.exist?(@ssl_cert) && File.exist?(@ssl_key) -%> listen 443 ssl; + <% end -%> server_name <%= @server_name %>; access_log /var/log/nginx/<%= @server_name %>.access.log; @@ -30,6 +32,8 @@ server { fastcgi_param HTTP_PROXY ""; } + <% if File.exist?(@ssl_cert) && File.exist?(@ssl_key) -%> ssl_certificate <%= @ssl_cert %>; ssl_certificate_key <%= @ssl_key %>; + <% end -%> }