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
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with twlight
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- 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.
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:
- new instance on horizon, with appropriate host-specific hiera config to allow access to the project share
- dump db on current site
- Do a local puppet run
puppet module install jsnshrmn/twlight --version x.x.x puppet apply some-manifest.pp
- delete the proxy pointing to the old site
- 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