Skip to content
This repository has been archived by the owner on Jun 12, 2019. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

twlight_puppet (Deprecated)

The Library Card Platform for The Wikipedia Library now uses Docker Swarm to manage deployment; much of the configuration is reduced to environment variables and secrets which are handled by Swarm rather than puppet.

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with twlight
  4. Usage - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.


This puppet module deploys and configures the Library Card Platform for The Wikipedia Library to Debian 8 systems. It is a work in progress.

Module Description

As it stands, this module is somewhat amature attempt to puppetize TWLight. It does the following sorts of things:

  • directly installs and configures packages
  • checks stuff out from git
  • runs dumb shell scripts to manage django
  • writes secrets to files

You probably only want to use this if you are developing or operating TWLight.


What twlight affects

The initial goal of this module is to install and configure TWLight as described in the project Sysadmin docs. Most of that doc content will get migrated here. Beyond that, this module

  • Runs any uncommitted django migrations
  • Imports a db dump if one exists at the specified location
  • Adds a daily mysql dump cron job

Beginning with twlight

Give twlight_vagrant a go


The classes, types, and resources for customizing, configuring, and doing the fancy stuff with this module are all shifting around rapidly since it's very immature. Check out the default manifest in the vagrant environment for now.

The only intended production environment for this is the wikimedia tools infrastructure. It's such a narrow-use module, that there's not much point in investing the effort to split it out into role modules + scap code deployment.

So, to do a headless deploy on tools:

  1. new instance on horizon, with appropriate host-specific hiera config to allow access to the project share
  2. dump db on current site
  3. Do a local puppet run
puppet module install jsnshrmn/twlight --version x.x.x
puppet apply some-manifest.pp
  1. delete the proxy pointing to the old site
  2. create a proxy pointing to a new site



Debian 8,9 only


twlight_vagrant is an adequate environment to develop this module in. Beyond the typical github workflow, you may wish to build the module to publish updates to puppet forge. You'll need to feed all of the right options to the installation of puppet in that environment, like:

/opt/puppetlabs/bin/puppet module build /vagrant/puppet/modules/twlight --codedir /vagrant/puppet


Deprecated Puppet module to deploy TWLight






No packages published