How do I "clean up" a machine after using the local provider?

I'm doing some testing and sometimes I have issues with containers and juju. How do I clean up a machine so that I can start using the local provider "from scratch" without reinstalling?


LXC containers and the Juju environment need to persist through a reboot, so everything is not contained in one place.

First, ensure that you have the environment destroyed and the containers are not running. Then remove the following files and directories:

/etc/init/juju-* 
/etc/lxc/auto/juju-*
/etc/rsyslog.d/25-juju* 
/var/lib/juju/containers/* 
/var/lib/lxc/juju-* 
~/.juju/<env> 
~/.juju/environments/<env>.jenv

Then you can reboostrap with a clean environment.

In certain cases you might need to list, stop, and destroy containers by hand, do this before removing the Juju files.

  • http://manpages.ubuntu.com/manpages/trusty/en/man1/lxc-ls.1.html
  • http://manpages.ubuntu.com/manpages/trusty/en/man1/lxc-stop.1.html
  • http://manpages.ubuntu.com/manpages/trusty/en/man1/lxc-destroy.1.html

You might find the following snippet I use helpful:

http://blog.naydenov.net/2014/03/remove-juju-local-environment-cleanly/

It's a bash script that needs to be run as root, and it tries to clean up aggressively all remnants of a local juju environment, including LXC templates, containers, logs, running mongodb test servers, etc.