LinuxCommandLibrary

juju

Deploy and manage software services

SYNOPSIS

juju [global-options] <command> [command-options] [arguments]

PARAMETERS

--assume-yes, -y
    Do not ask for confirmation

--bootstrap-series
    Series to bootstrap controllers on (e.g., xenial)

--client
    Connect to specified Juju version client

--config
    Specify configuration file or key=value pairs

--debug, -D
    Enable debug logging

--hold
    Hold requested packages at current version

--log-level
    Set logging level (DEBUG|INFO|WARNING|ERROR)

--model
    Model to operate on

--no-browser
    Do not launch web browser for GUI

--output, -o
    Specify output format (json, yaml, tab-separated)

--timeout
    Set operation timeout

--verbose, -v
    Increase verbosity (repeat for more)

--yes
    Agree to prompts (same as --assume-yes)

DESCRIPTION

Juju is an open-source, model-driven orchestration engine developed by Canonical for deploying, managing, and scaling applications across clouds, VMs, bare metal, and containers. It simplifies complex operations using charms—reusable, shareable packages that encapsulate software deployment logic—and models that represent application lifecycles.

Operators define desired states in models, and Juju ensures idempotent execution to achieve them. Supports clouds like AWS, Azure, GCP, OpenStack, and on-prem with MAAS or LXD. Integrates with Kubernetes via Charmed Kubernetes.

Core workflow: juju bootstrap initializes controllers, juju deploy launches charms, juju add-relation connects services, and juju status provides real-time insights. Relations enable automatic configuration between services, like databases and apps. Scales horizontally with juju add-unit.

Ideal for big data, PaaS, and microservices. Installed via snap on Ubuntu; cross-platform CLI.

CAVEATS

Requires snap installation; cloud credentials via juju add-credential. High resource use on large models. Not for single-host tasks.

MAIN SUBCOMMANDS

bootstrap: Initialize controller.
deploy: Deploy charm to model.
status: Show model status.
remove-model: Destroy model.

CHARMS AND BUNDLES

Charms from Charmhub (juju deploy mysql --channel=8.0/stable). Bundles deploy multi-service stacks.

CONTROLLERS

Central management: juju controllers, juju add-model.

HISTORY

Originated as Ensemble in 2010 by Canonical; renamed Juju in 2011. Juju 2.0 (2016) introduced controllers and unbundled architecture. Version 3.0+ focuses on Kubernetes and multi-cloud. Actively maintained for Ubuntu ecosystem.

SEE ALSO

charm(1), jaas(1), juju-controller(8), lxd(1), maas(1), snap(8)

Copied to clipboard