Sometimes you don't have all day to figure stuff out, here's a TLDR of how to use Juju:
sudo add-apt-repository ppa:juju-stable && sudo apt-get update && sudo apt-get install juju juju-local juju-quickstart charm-tools
juju quickstart -i
- prompts you for all your cloud credentials.juju bootstrap -v
- bootstrap a node (always -v so you can see what's going on, drop the -v when you get comfortable with juju, but juju bootstrap since 1.17.0 shows what's going on -v is really verbose at this point)juju debug-log
- open this in another terminal or tab, so you can see what juju is doing while you type other commands)
juju deploy $servicename $alias- deploy a service, alias is optional if you want to name it something. If you use aliases you need to refer to the service via the alias from then on:
juju deploy mediawiki myawesomewiki
juju add-unit $servicename
- add a unitjuju add-unit -n 10 $servicename
- add 10 units.juju deploy $servicename --to #
- deploy servicename to a specific machine #. Use 0 to deploy to the bootstrap node.juju status
- shows what's going onjuju status servicename
- shows you what's going for a particular serverjuju ssh servicename/machine#
- ssh to a unit, get the # from juju statusjuju ssh machine#
- ssh to a machine number
juju quickstart bundle:~abentley/wiki-bundle/1/wiki
- Get the bundle address from jujucharms.com
juju add-relation $service1 $service2
- relate two servicesjuju destroy-relation $service1 $service2
- unrelate 2 services
juju destroy-environment $environment-name
- destroy an environmentjuju destroy-service $servicename
- destroy a service, DOES NOT REMOVE THE MACHINE, you need to follow up:juju destroy-machine
# - destroy machine #
charm create foo
- create a blank charm templatecharm add tests
- add tests to an existing charmcharm add readme
- add a readme template to an existing charmcharm proof
- lint for charmsbundle proof
- lint for bundles
juju debug-hooks - debug mode for charm writing, this will ssh you into the units and fire off a tmux session to debug (totally awesome, use this).
- "I broke the local provider and need to start over" - http://askubuntu.com/questions/403618/how-do-i-clean-up-a-machine-after-using-the-local-provider
- "There's a race somewhere and sometimes the unit doesn't come up" -
juju resolved $servicename --retry
- Listing of all the charms: https://jujucharms.com/fullscreen/search/?text=
juju status -e $environmentname
- show me the status of another environmentjuju switch $environmentname
- switch to a different environmentjuju add-machine
- add a blank machine that you can mess with
sudo lxc-ls --fancy
- show all the containers on your machine