<a id="howtos"></a>

# How-to guides

**Step-by-step guides** covering key operations and common tasks

## Set up the Terraform Provider for Juju

Install the client, connect a Juju controller, connect clouds.

- [Manage the Terraform Provider for Juju](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-the-terraform-provider-for-juju.md#manage-the-terraform-provider-for-juju)
- [Manage controllers](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-controllers.md#manage-controllers)
- [Manage clouds](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-clouds.md#manage-clouds)
- [Manage credentials](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-credentials.md#manage-credentials)
- [Use a bootstrapped controller](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/use-a-bootstrapped-controller.md#use-a-bootstrapped-controller)
- [Use the Juju CLI in Terraform](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/use-the-juju-cli.md#use-the-juju-cli-in-terraform)

## Handle authentication and authorization

Set up SSH keys. Add users, service accounts, roles, and groups and control their access to controllers, clouds, models, or application offers.

- [Manage SSH keys](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-ssh-keys.md#manage-ssh-keys)
- [Manage users](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-users.md#manage-users)
- [Manage service accounts](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-service-accounts.md#manage-service-accounts)
- [Manage roles](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-roles.md#manage-roles)
- [Manage groups](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-groups.md#manage-groups)

## Deploy infrastructure and applications

Deploy, configure, integrate, scale, etc., charmed applications. This will automatically provision infrastructure, but you can customise it before, during, or after deploy too.

- [Create deployment dependencies](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/create-deployment-dependencies.md#create-deployment-dependencies)
- [Manage models](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-models.md#manage-models)
- [Manage charms](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-charms.md#manage-charms)
- [Manage charm resources](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-charm-resources.md#manage-charm-resources)
- [Manage applications](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-applications.md#manage-applications)
- [Manage relations](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-relations.md#manage-relations)
- [Manage offers](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-offers.md#manage-offers)
- [Manage units](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-units.md#manage-units)
- [Manage secrets](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-secrets.md#manage-secrets)
- [Manage secret backends](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-secret-backends.md#manage-secret-backends)
- [Manage machines](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-machines.md#manage-machines)
- [Manage storage pools](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-storage-pools.md#manage-storage-pools)
- [Manage spaces](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-spaces.md#manage-spaces)
- [Manage actions](https://documentation.ubuntu.com/terraform-provider-juju/latest/howto/manage-actions.md#manage-actions)
