Wikimedia Labs/Puppet learning mode

From mediawiki.org

Note: looks like something like this already exists, called Blueprint

Write application that will record actions as puppet configuration while setting up services manually.

  • Watch apt log, and make configuration for each action:
    apt-get install:
       package { "<packagename>":
           ensure => latest;
       }
  • apt-get (purge|remove):
       package { "<packagename>":
           ensure => absent;
       }
  • apt-key add:
       apt::key { "<keyname>": apt_key => "<keyname>" }
  • apt-key delete:
       apt::key { "<keyname>": apt_key => "<keyname>", ensure => absent }
  • Watch for file edits via editor logs, and copy files and make configuration:
    On edit/copy:
       file {
           "<file-location>":
               content => template("<file>"),
               owner => <file-owner>,
               group => <file-group>,
               mode => <file-mode>;
       }
  • On chmod/chown/chgrp, make or modify configuration
  • When exiting learning mode, inspect the firewall rules and make configuration
  • Have a logger, to document your steps as you go. The messages should be output in MediaWiki format:
    log heading "Configuring OpenStack"
    log number-list --begin
    log "Install packages"
    log heading "..."
    log number-list --end
    ...
  • Application should keep configuration in an intermediate state, and should output when asked.