jclouds/labs/virtualbox/README.md

64 lines
3.0 KiB
Markdown

#Setup
Have virtualbox 4.1.20r80170 installed.
Have an ssh daemon with passwordless login to localhost (i.e. "ssh [me]@localhost" must work without password).
To achieve that, be sure you have your ssh public key (at System.getProperty("user.home") + "/.ssh/id_rsa") in your '.ssh/authorized_keys'.
Please look at [this example]http://www.linuxproblem.org/art_9.html for more details.
You can have also specify '-Dvirtualbox.identity' and '-Dvirtualbox.credential' if you want to use a username and password of your local machine.
In order to make available a preseed file, jclouds-vbox will start a PreseedServer at `http://localhost:23232` that will serve a preseed.cfg file.
Make sure your firewall rules are not blocking this port.
If you need to override this default you can use -Djclouds.virtualbox.preconfigurationurl=http://localhost:PORT/preseed.cfg, with a different PORT.
That's it!
--------------
#Running a local cloud
Enjoy local cloud goodness by running:
"mvn clean install clojure:repl"
> (use 'org.jclouds.compute2)
> (import 'org.jclouds.scriptbuilder.statements.login.AdminAccess)
> (def compute (compute-service "virtualbox" "user" "password" :sshj :slf4j))
> (create-nodes compute "local-cluster" 2 (build-template compute { :run-script (AdminAccess/standard) } ))
--------------
#Interacting with jclouds-vbox and connecting to machines
For java guidance look into src/test/java/org/jclouds/virtualbox/compute/VirtualBoxExperimentLiveTest.java.
For now nat+host-only is the only available network configuration, nodes should be accessible from the host by:
> ssh -i ~/.ssh/id_rsa -o "UserKnownHostsFile /dev/null" -o StrictHostKeyChecking=no me@192.168.86.X
where X is the node index with regard to creation order starting at 2 (2,3,4, etc...)
It *should* behave as any other provider, if not please report.
--------------
#Notes:
- jclouds-vbox is still at alpha stage please report any issues you find.
- jclouds-vbox has been mostly tested on Mac OSX, it might work on Linux iff vbox is running and correctly set up, but it won't work on windows for the moment.
- cached isos, vm's and most configs are kept at ~/.jclouds-vbox/ by default, you can override -Dtest.virtualbox.workingDir=/path/to/your/workingDir.
- jclouds-vbox assumes vbox has the default host-only network vboxnet0, that the network is in 192.168.86.0/255.255.255.0 and that the host has address 1 in this network.
--------------
#Throubleshooting
As jclouds vbox support is quite new things might go wrong sometimes. The procedure to make things work again is the following:
1. Remove all relevant vm's (named "jclouds-* ") with the vbox GUI. Make sure to select "delete all files".
- Step one should be enough most of the times, but if it fails (by throwing some error):
2. kill all vbox processes (VboxHadless, VBoxSVC, VBoxXPCOMIPCD, VirtualBox, vboxwebsrv)
3. delete manually the files by executing: "rm -rf ~/.jclouds-vbox/jclouds-*"
4. restart the vbox GUI and make sure to delete all remaining machines ignoring all errors.