Browse files

Update cheatsheet for 1.x and 2.x commands, split out charm-tools.

  • Loading branch information...
1 parent ddaa20a commit 6953035814894377196f5ee511a8fe905c810e89 @mbruzek mbruzek committed May 5, 2016
Showing with 14 additions and 89 deletions.
  1. +14 −89
@@ -1,97 +1,22 @@
-# Juju Cheatsheet
+# Juju Cheatsheets
-Sometimes you don't have all day to figure stuff out, here's a TLDR of how to use Juju. Remember you can always `juju help` and then any of these subcommands to get the help for the command.
+Juju changed the subcommands on the major release boundary. These documents are
+a summary of Juju commands for the major releases. For more detailed
+information please refer to the
+[official documentation](
-## Installing the PPA and all the goodies:
+Remember you can always `juju help` and then any of these subcommands to get the
+help for the specific command.
-- `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 1.x
-## Using Juju
+The [1.x Juju cheatsheet]( covers the original Juju subcommands.
-- `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 2.x
- juju deploy mediawiki myawesomewiki
+The [2.x Juju cheatsheet]( covers the new Juju subcommands.
-- `juju add-unit servicename` - add a unit
-- `juju 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 on
-- `juju status servicename` - shows you what's going for a particular server
-- `juju ssh servicename/machine#` - ssh to a unit, get the # from juju status
-- `juju ssh machine#` - ssh to a machine number
-- `juju run "uname -a" --all` - Run a command (uname) on every instance. (1.17.2 and newer)
-## bundles
-- `juju quickstart bundle:~abentley/wiki-bundle/1/wiki` - Get the bundle address from
-## Relations
-- `juju add-relation $service1 $service2` - relate two services
-- `juju destroy-relation $service1 $service2` - unrelate 2 services
-## Deploying to Containers, VMs, and metal
-- `juju deploy servicename --to lxc:10` - Deploy service to a container on machine #10
-- `juju deploy servicename --to kvm:10` - Deploy service to a KVM on machine #10
-- `juju deploy servicename --to 10` - Deploy service to the raw bare metal on machine #10
-- `juju deploy servicename --constraints instance-type=m1.small` - Deploy to certain AWS types.
-## Working with Units
-- `juju ssh servicename/#` - ssh to a specific machine # for a service.
-- `juju run --service servicename "uname -a"` - run a command on all machines of a service and return results to the console (useful!)
-- `juju scp servicename/0:/tmp` - copy to /tmp on node 0 of servicename.
-## Destroying Stuff
-- `juju destroy-environment $environment-name` - destroy an environment
-- `juju destroy-service $servicename` - destroy a service, DOES NOT REMOVE THE MACHINE, you need to follow up:
-- `juju destroy-machine` # - destroy machine #
-## Writing Charms/Bundles
-- `charm create foo` - create a blank charm template
-- `charm add tests` - add tests to an existing charm
-- `charm test -e $environment` - executes all tests found in the charm tests directory in specified environment (amazon, hp, etc.).
-- `charm add readme` - add a readme template to an existing charm
-- `charm proof` - lint for charms
-- `bundle 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).
-## Clean up
-- "I broke the local provider and need to start over" -
-- "There's a race somewhere and sometimes the unit doesn't come up" - `juju resolved $servicename --retry`
-## Other
-- Listing of all the charms:
-- `juju status -e $environmentname` - show me the status of another environment
-- `juju switch $environmentname` - switch to a different environment
-- `juju add-machine` - add a blank machine that you can mess with
-- `juju ensure-availability` - Ensures the state server is HA (+3 nodes) - you only really need this in production.
-## Useful LXC commands
-`sudo lxc-ls --fancy` - show all the containers on your machine
-## Plugins
-Install plugins:
- git clone ~/.juju-plugins
- echo 'PATH=$PATH:$HOME/.juju-plugins' >> ~/.bash_profile
- source ~/.bash_profile
- juju help plugins
-Plugin Cheats:
-- `juju pprint` - prettier status, a must for large deployments
-- `juju clean` - reset and clean all LXC containers and the Juju local provider
-- `juju git-deploy` - Deploy charms directly from a git repo.
+## charmtools 2.x
+The [2.x charm-tools cheatsheet]( covers the charm

0 comments on commit 6953035

Please sign in to comment.