yellow/Juju

Not logged in - Log In / Register

Revision 14 as of 2012-01-27 21:32:43

Clear message

Juju Development Notes

Notes for getting started with Juju

cd $JUJUDIR
juju bootstrap -e local  # Assuming you called your LXC configuration in environments.yaml 'local'
juju deploy --repository=. local:buildbot-master
watch juju status  # wait for the state to be 'started'
juju expose buildbot-master

You should then be able to go to http:<local_ip_address>:8010 and see the buildbot page for pyflakes.

The IP address and port are available in the juju status output.

Notes for hacking on Juju

 $ ./test the.path.to.the.TestCase.and_test

Notes for working with Juju

Notes for working with Juju Charms

 $ juju set my-service option=$(uuencode /path/to/config/file)

(On the client)
root@ip-10-116-73-15:/# grep unit.hook.api /var/lib/juju/units/$UNITNAME/charm.log
2012-01-17 20:51:17,315: unit.hook.api@INFO: --> install
2012-01-17 20:51:20,588: unit.hook.api@INFO: Creating master in /tmp/buildbot
2012-01-17 20:51:23,539: unit.hook.api@INFO: <-- install
2012-01-17 20:51:24,883: unit.hook.api@INFO: --> config-changed
2012-01-17 20:51:25,561: unit.hook.api@INFO: Updating buildbot configuration.
2012-01-17 20:51:26,811: unit.hook.api@INFO: Config decoded and written.
2012-01-17 20:51:27,406: unit.hook.api@INFO: <-- config-changed
2012-01-17 20:51:28,793: unit.hook.api@INFO: --> start
2012-01-17 20:51:30,613: unit.hook.api@DEBUG: opened 8010/tcp
2012-01-17 20:51:31,258: unit.hook.api@INFO: <-- start

On LXC, or perhaps with the newest drop of juju, the log can be found on the client at  /var/log/juju/unit-$UNITNAME.log.

As a result, config-changed hooks shouldn't assume that a service has been started; they should check before restarting it.

/home/bac> ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 45 Jan 23 13:46 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java*

Notes for creating Juju Charms

Getting reviews of reviews

We want to become good writers and reviewers of charms. The Juju team has said they are willing to help us with this. To ask for reviews, do the following:

Debugging notes

LXC

You can see the Juju environment in the lxc by looking (cat) in the host at /proc/PID/environ, where PID is the PID of the machine agent (ps aux | grep machine should show it). The machine configures the containers with a base juju environment.

Look in your ~/.juju/environments.yaml for the data-dir configured for your lxc. Now look in the dir. It has lots of good logs for what is going on. $data-dir/$uid-$environmentname/units/master-customize.log has some good stuff in particular.