(QENG-431) expanded and improved role support in beaker - reapply

This re-applies the reverted role support for beaker.
nitpick: I believe the convention is to not have spaces between the pipes and the local variables, eg:
```
|host|
```