- Install java
- Install leiningen
- Clone this repository
- Create an executable jar file by invoking:
cd /path/to/repo
lein uberjar
The executable jar file is in /path/to/project/target/cloudmill.jar
If you want to use cloudmill with Virtualbox, ensure you have Virtualbox v4.2.x installed.
Further, ensure you have an ssh key registered with your ssh-agent. If you do not, cloudmill will not be able to log into and configure your VMs.
Invoke cloudmill by:
java -jar cloudmill.jar help
To start a virtualbox VM:
java -jar cloudmill.jar vbox start
To stop your virtualbox VMs:
java -jar cloudmill.jar vbox stop
By default, Cloudmill will store it’s configuration information in “~/.cloudmill/config.clj”. You can modify this location by setting your CLOUDMILL_HOME.
For example:
export CLOUDMILL_HOME=/path/to/cloudmill/config.clj
Pallet uses a library called vmfest to manage VirtualBox VMs. Currently, there is a limitation in vmfest that prevents us from using whatever image we want. At the moment, we have to use their provided debian image.
This doesn’t cause us any trouble that I know of at them moment, and they’re working on a fix for it. So, I’m not worried about this limitation.
The disk image they provide for us is immutable. That means that if the user “destroys” the VM instance, they’ll have to completely rebuild CouchDB next time they turn on the instance. This takes about 16 minutes on my macbook pro. So, this is painful if you want to set up a dev environment quickly.
There are two solutions for this.
- We can create our own immutable disk image, based on their debian image, that has CouchDB installed.
- We can share a folder from the host OS into the VM and make all our changes in the shared folder. This way changes are stored on the host machine durably. These changes can be used across multiple VM lifetimes by simply re-mounting the shared folder.
At the moment neither of these solutions are implemented.