Role Life-cycle Tags

The Life-cycle Tags

  • install:base
    • User
    • Directories
    • Virtual environments
  • install:code
    • Checks out code
  • install:system-requirements
    Installs OS dependencies
  • install:app-requirements
    pip install -r requirements.txt/bundle install
  • install:configuration
    Drops other configuration (such as supervisor, gunicorn, etc)
  • install:app-configuration
    Resolves vars and drops env.yml/auth.yml (useful for only generating the yml files for distributing config)
  • install:vhosts
    Builds nginx vhosts when relevant, can run locally or remotely
  • assets:pre-reqs
    Installs ruby/sass/grunt/node
  • assets:gather
    Processes assets
  • migrate:db
    Migrates the RDBMS using today, make migrate in the future
  • migrate:mongodb
    As above,  but for whichever nosql option
  • manage:app-users
  • manage:db
    create/ensure the database and db users exist
  • manage:monitoring
  • manage:start
  • manage:stop
  • test:unit
  • test:integration
  • test:acceptance


  • For the moment, we can implement "wildcard" tags by tagging tasks with tags: [install, install:vhosts]
  • In the future, we may want to move all of the supervisor- and linking-related stuff into a separate tag (including rereading supervisor). (It's currently in install:configuration, which seems wrong. Maybe it should just go in manage:start?)

Sample Application