WARNING: reboot support is not yet merged. If you need to reboot please use old binaries
For the sake of this example, we will assume that your MaaS IP is 192.168.200.1
sudo apt-get -y install golang-go git mercurial bzr mongodb
echo 'export GOPATH=$HOME/golang' >> ~/.bashrc echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bashrc . ~/.bashrc mkdir -p $GOPATH
This will add the necessary variables to facilitate building juju and to have juju (client) in your path once that's done.
go get -v github.com/juju/juju/...
go get -v launchpad.net/godeps cd $GOPATH/src/github.com/juju/juju godeps -f -u dependencies.tsv
go install -v github.com/juju/juju/...
Binaries will be in $GOPATH/bin
Instructions for the Windows version can be found HERE
juju init
If you want to upload your version of juju to MaaS to be used for deployment (and you do):
mkdir -p ~/.juju/tools/releases cd ~/.juju/tools/releases cp ~/golang/bin/jujud* . tar -czf juju-1.21.1-trusty-amd64.tgz jujud rm jujud
Do this for every version of ubuntu that you want to have tools for. Trusty should be enough for development.
For windows machines:
cd ~/.juju/tools/releases cp /location/to/jujud.exe . # this will have to be copied over from your Windows machine (see above) tar -czf juju-1.21.1-win2012hvr2-amd64.tgz jujud.exe rm *.exe
do this for every version you want to support
juju-metadata generate-tools
This will generate all metadata from the tools found in ~/.juju/tools/releases. The metadata files can be found in:
ls -l /home/ubuntu/.juju/tools/streams/v1
Go to your MaaS web interface under:
http://192.168.200.1/MAAS/account/prefs/
Where you will find:
MAAS keys
sed -i 's/^default:.*/default: maas/g' ~/.juju/environments.yaml sed -i 's|maas-server: .*|maas-server: "http://192.168.200.1:5240/"|' ~/.juju/environments.yaml sed -i 's|maas-oauth: .*|maas-oauth: "<KEY FROM MAAS WEB UI>"|' ~/.juju/environments.yaml
juju sync-tools --source=/home/ubuntu/.juju/ --debug
juju bootstrap --debug
juju bootstrap --debug --constraints tags=StateMachine
This will take a while. If your network is slow, the first time you try to bootstrap will fail. Juju has a timeout of 10 minutes. Don't panic, just run it again. MaaS caches your debs and the next time you try it will get from local cache.
echo 'nameserver 192.168.200.1' > /etc/resolv.conf # this will replace you nameservers
juju status
this should output something similar to:
ubuntu@maas-controller:~$ juju status environment: maas machines: "0": agent-state: started agent-version: 1.19.1 dns-name: MaaS-StateMachine.maas instance-id: /api/1.0/nodes/node-4aecf276-c94c-11e3-95d7-525400a3b5b3/ series: trusty state-server-member-status: has-vote
If it does not, I have failed miserably to explain this procedure properly, and I am ashamed.
You should now be able to deploy new charms. To test it out, lets install MySQL:
juju deploy mysql
This will install mysql on a “Ready” node (in MaaS).