Dynamic Puppet modules with puppet kick and foreman

I have a need where my client would like to restart some services and possibly upgrade existing software. So I was thinking, wouldn't it be cool to let foreman handle this process?

Service Control

  1. Get list of services from /etc/init.d or whatever is supported on OS
  2. Present list to user and let them choose which service to stop/start/restart

I know this could be done with mcollective, but I think it could also be done by writing a simple puppet script or module on the fly and pushing to the puppet client
Additionally add the schedule attribute to schedule the job if needed.

Software Install

  1. Get list of software and present to user
  2. Allow them to choose which software to upgrade/install/remove

Create a dynamic puppt script or module to take care of this install task.
Additionally add the schedule attribute to schedule the job if needed.

Now its important that we wrap some RBAC around these tasks to prevent people from mucking up a system. Furthermore, these actions would be in the audit log to trace back to anyone user.

Comments? Anybody else find the possibility to control services and software without creating puppet modules a worthy feature?

Corey Osman