See also: Configuration Management for Tiki Projects

The challenge: You have a big Tiki project and you want to use the traditional development, testing, acceptance and production setup (DTAP)

How do you deal with:

  • Generic code that will be upstreamed
  • Custom code that won't be upstreamed (but should be versioned locally)
  • Custom theme/design (which should be versioned locally)
  • Content (in database)
    • Content via Wiki Plugins is routinely used to do stuff we used to do in PHP
  • Configuration, typically in database, but can be in text files via System Configuration
  • Translations that will be upstreamed
  • Translations that won't be upstreamed (but should be versioned locally) (could be in DB or lang/xx/custom.php)
  • Maintainability of advanced configurations of features


On a related note, here is a Messaging systems evaluation

Examples

  • Content evolve in prod (user generated content)
  • A new feature is in development, so code needs to be merged from dev to testing. But often preferences and modules need to be configured.
    • If you refresh the testing data from the production server (like as Pre-Dogfood Server, you will loose your preferences & module configurations.

Wishes

  • A way to easily check on which server I am (which doesn't get overwritten with rsync)
    • This is to avoid mistakes
  • Quick way to compare the configurations between the 2 to 4 sites and have a way to merge data / propagate some data
  • Make it possible to identify a site as staging or development and have different settings, such as
    • <meta NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
    • Don't send out notification emails
    • Site closed

Dev, Test, Prod

  • Dev: 10.x
  • Test: 9.x latest
  • Prod: 9.x older


Before doing svn up on prod, we do svn up on test, and we do a diff of:

  • svn diff test
  • svn diff prod

Idea

If both sites have shell and use System Configuration, maybe use something like http://www.fossil-scm.org/ to compare/merge...

Who

  • Marc Laporte
  • you? (Add your name to join the working group)

Related links

Options on Ohloh.net

Overview

T-DOSE 2012 Toshaan Bharvani, Puppet, Chef, CFEngine, Ansible, Salt, different approaches

http://www.coloandcloud.com/editorial/func-mcollective-salt-and-rundeck/

Puppet

Salt


Chef

Free hosted version up to 5 nodes: http://www.opscode.com/chef/

Just scheduled for Jul 31: Thomas S. Hatch - SaltStack update (http://saltstack.com/community.html). We had him on back in Nov 2011, but a lot has happened in the Salt world, including bare metal provisioning, and a lot of other cloudy things.

CFEngine

Bcfg2

cdist

Quattor

Juju

Crowbar

Nuri

Managing TikiWiki CMS with Nuri

Ansible


Alexandre Bourget demoes Ansible:

Fredistrano

OCS Inventory NG

Radmind

Rudder

Spacewalk

Software Test Automation Framework (STAF)

Ganeti


"Ganeti is a cluster virtual server management software tool built on top of existing virtualization technologies such as Xen or KVM and other Open Source software."
https://code.google.com/p/ganeti/

Serf

Serf is a decentralized solution for cluster membership, failure detection, and orchestration. Lightweight and highly available.

Phing

PHing Is Not GNU make; it's a PHP project build system or build tool based on ​Apache Ant.

Archipel

"Archipel is a solution to manage and supervise virtual machines. No matter if you have a few locally on your computer or thousands through data centers, Archipel is a central solution to manage them all. You can perform all basic virtualization commands and many other things like live migration, VMCasts, packages, etc."

Capistrano

http://capistranorb.com/

Roboconf


Related: Vagrant

alias