You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Grant Slater 285e9901c6 git: add potential workaround of keepalive race 15 hours ago
.github/workflows Fix cookstyle typo 15 hours ago
cookbooks git: add potential workaround of keepalive race 15 hours ago
hooks Fix new rubocop warnings 2 years ago
roles Use https for github URLs 1 day ago
test Add test for tile cookbook 1 day ago
.dockerignore Add basic Dockerfile for linting tests 8 months ago
.editorconfig Add basic .editorconfig file 3 months ago
.gitignore Ignore .kitchen.local.yml 3 years ago
.kitchen.yml Add test for tile cookbook 1 day ago
.mailmap Add additional emails to .mailmap 2 months ago
.rubocop.yml Tell cookstyle to target ruby 2.5 2 days ago
.rubocop_todo.yml Update cookstyle todo 2 months ago
.ruby-version Update CI ruby version to 2.5.7 6 days ago Add a readme and a contributing guide. 5 years ago
Dockerfile Cleanup Dockerfile used for linting 3 months ago
Gemfile Drop kitchen-vagrant and make kitchen-dokken the only test driver 1 week ago
Gemfile.lock Update bundle 2 days ago
LICENSE Convert more URLs to https 2 years ago Fix cookstyle typo 15 hours ago

OpenStreetMap chef cookbooks

Cookstyle Test Kitchen

This repository manages the configuration of all the servers run by the OpenStreetMap Foundation's Operations Working Group. We use Chef to automated the configuration of all of our servers.

OSMF Operations Working Group


We make extensive use of roles to configure the servers. In general we have:

Server-specific roles (e.g. katla.rb)

These deal with particular setup or quirks of a server, such as its IP address. They also include roles representing the service they are performing, and the location they are in and any particular hardware they have that needs configuration. All our servers are named after dragons.

Hardware-specific roles (e.g. tyan-s7010.rb)

Covers anything specific to a certain piece of hardware, like a motherboard, that could apply to multiple machines.

Location-specific roles (e.g. equinix.rb)

These form a hierarchy of datacentres, organisations, and countries where our servers are located.

Service-specific roles (e.g. web-frontend)

These cover the services that the server is running, and will include the recipes required for that service along with any specific configurations and other cascading roles.


We use the ‘Organization Repository’ approach, where we have all our cookbooks in this repository (as opposed to one repository per cookbook). Additionally we don't make use of external cookbooks so every cookbook required is in this repository.


Contributions are welcome! Please see for more details.

Contact Us