From 53342bfb30cc6b2d012375b79c8bfcd8571f80c1 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 20 Dec 2015 11:26:53 +0000 Subject: [PATCH] Deploy osmf-server-info to hardware.openstreetmap.org --- cookbooks/serverinfo/.foodcritic | 1 + cookbooks/serverinfo/README.md | 34 +++++++++ cookbooks/serverinfo/metadata.rb | 9 +++ cookbooks/serverinfo/recipes/default.rb | 74 +++++++++++++++++++ .../serverinfo/templates/default/apache.erb | 27 +++++++ roles/ironbelly.rb | 3 +- 6 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 cookbooks/serverinfo/.foodcritic create mode 100644 cookbooks/serverinfo/README.md create mode 100644 cookbooks/serverinfo/metadata.rb create mode 100644 cookbooks/serverinfo/recipes/default.rb create mode 100644 cookbooks/serverinfo/templates/default/apache.erb diff --git a/cookbooks/serverinfo/.foodcritic b/cookbooks/serverinfo/.foodcritic new file mode 100644 index 000000000..698ef4c72 --- /dev/null +++ b/cookbooks/serverinfo/.foodcritic @@ -0,0 +1 @@ +~FC003 diff --git a/cookbooks/serverinfo/README.md b/cookbooks/serverinfo/README.md new file mode 100644 index 000000000..205739199 --- /dev/null +++ b/cookbooks/serverinfo/README.md @@ -0,0 +1,34 @@ +Cookbook +======== +TODO: Enter the cookbook description here. + +e.g. +This cookbook makes your favorite breakfast sandwich. + +Requirements +------------ +TODO: List your cookbook requirements. Be sure to include any requirements this cookbook has on platforms, libraries, other cookbooks, packages, operating systems, etc. + +Attributes +---------- +TODO: List you cookbook attributes here. + +Usage +----- +TODO: Write usage instructions for each cookbook. + +Contributing +------------ +TODO: (optional) If this is a public cookbook, detail the process for contributing. If this is a private cookbook, remove this section. + +e.g. +1. Fork the repository on Github +2. Create a named feature branch (like `add_component_x`) +3. Write your change +4. Write tests for your change (if applicable) +5. Run the tests, ensuring they all pass +6. Submit a Pull Request using Github + +License and Authors +------------------- +Authors: TODO: List authors diff --git a/cookbooks/serverinfo/metadata.rb b/cookbooks/serverinfo/metadata.rb new file mode 100644 index 000000000..af6c1cf42 --- /dev/null +++ b/cookbooks/serverinfo/metadata.rb @@ -0,0 +1,9 @@ +name "serverinfo" +maintainer "OpenStreetMap Administrators" +maintainer_email "admins@openstreetmap.org" +license "Apache 2.0" +description "Configures server-info web site" +long_description IO.read(File.join(File.dirname(__FILE__), "README.md")) +version "1.0.0" +depends "apache" +depends "git" diff --git a/cookbooks/serverinfo/recipes/default.rb b/cookbooks/serverinfo/recipes/default.rb new file mode 100644 index 000000000..eb6ed4958 --- /dev/null +++ b/cookbooks/serverinfo/recipes/default.rb @@ -0,0 +1,74 @@ +# +# Cookbook Name:: serverinfo +# Recipe:: default +# +# Copyright 2015, OpenStreetMap Foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include_recipe "apache::ssl" +include_recipe "git" + +package "ruby2.0" +package "ruby2.0-dev" + +gem_package "jekyll" do + gem_binary "gem2.0" +end + +git "/srv/hardware.openstreetmap.org" do + action :sync + repository "git://github.com/gravitystorm/osmf-server-info.git" + user "root" + group "root" + notifies :run, "execute[/srv/hardware.openstreetmap.org]" +end + +nodes = { :rows => search(:node, "*:*") } +roles = { :rows => search(:role, "*:*") } + +file "/srv/hardware.openstreetmap.org/_data/nodes.json" do + content nodes.to_json + mode 0644 + owner "root" + group "root" + notifies :run, "execute[/srv/hardware.openstreetmap.org]" +end + +file "/srv/hardware.openstreetmap.org/_data/roles.json" do + content roles.to_json + mode 0644 + owner "root" + group "root" + notifies :run, "execute[/srv/hardware.openstreetmap.org]" +end + +directory "/srv/hardware.openstreetmap.org/_site" do + mode 0755 + owner "nobody" + group "nogroup" +end + +execute "/srv/hardware.openstreetmap.org" do + action :nothing + command "jekyll build" + cwd "/srv/hardware.openstreetmap.org" + user "nobody" + group "nogroup" +end + +apache_site "hardware.openstreetmap.org" do + template "apache.erb" + directory "/srv/hardware.openstreetmap.org/_site" +end diff --git a/cookbooks/serverinfo/templates/default/apache.erb b/cookbooks/serverinfo/templates/default/apache.erb new file mode 100644 index 000000000..1cb0fe44c --- /dev/null +++ b/cookbooks/serverinfo/templates/default/apache.erb @@ -0,0 +1,27 @@ +# DO NOT EDIT - This file is being maintained by Chef + + + ServerName <%= @name %> + ServerAdmin webmaster@openstreetmap.org + + CustomLog /var/log/apache2/<%= @name %>-access.log combined + ErrorLog /var/log/apache2/<%= @name %>-error.log + + Redirect permanent / https://<%= @name %>/ + + + + ServerName <%= @name %> + ServerAdmin webmaster@openstreetmap.org + + CustomLog /var/log/apache2/<%= @name %>-access.log combined + ErrorLog /var/log/apache2/<%= @name %>-error.log + + DocumentRoot <%= @directory %> + + SSLEngine on + + +> + Require all granted + diff --git a/roles/ironbelly.rb b/roles/ironbelly.rb index 098568265..50e22907c 100644 --- a/roles/ironbelly.rb +++ b/roles/ironbelly.rb @@ -118,5 +118,6 @@ run_list( "recipe[rsyncd]", "recipe[openvpn]", "recipe[git::server]", - "recipe[tilelog]" + "recipe[tilelog]", + "recipe[serverinfo]" ) -- 2.39.5