Workflow scenarios

To demonstrate multi-user interaction, we present several workflows. It is assumed that Juju is installed [link to juju install page]. This presentation will be based on the local cloud: LXD. Since LXD does not require credentials, there will be no mention of credentials below (see Getting Started for a full treatment of using LXD as the cloud provider).

Basic setup and single user

Controller creation

A system user creates a controller, thus becoming the controller's administrator. See Controllers for information on controllers.

juju bootstrap lxd lxd-controller-1

Administrator password creation

A new administrator does not have a real password. He should create it now:

juju change-user-password

Regular user creation

The administrator creates a regular user.

juju add-user tom

This outputs a special string to provide to the user so user registration can take place (see below).

Hosted model creation

Although not strictly necessary (every controller comes with a usable model named 'default'), the administrator adds a hosted model:

juju add-model lxd-model-1

Grant model access

The administrator grants the user write access to the previously created model:

juju grant --acl=write tom lxd-model-1

User registration

The previously created regular user registers with the controller:

juju register MD0TBGpvaG4wExMRMTAuODA...

The user is automatically logged in to the controller upon registration and enjoys model access that may have been granted. Commands to try:

juju controllers
juju models

Password change

Although a password is created in the above step the regular user may want to change it:

juju change-user-password

Juju usage

Because the regular user has been provided write access to the model he/she can begin to utilise Juju:

juju deploy mysql mysql-staging


A login session expires after a fixed amount of time (24 hours) but the regular user can explicitly log out:

juju logout