How to setup juju manual environment

Posted on  8/9/2015

Juju Quick introduction

Juju is a open source, solution-driven orchestration tool from Ubuntu , juju help to model and deploy, maintain and scale various services to cloud or bare metal servers easily , using command line or graphical gui tool. you can use juju with ansible , puppet or chef .

Source :
Source :
Image credit :


Demo environment

1 . Juju host : if you are on ubuntu then its fine you can use localhost as your juju host , or if you are on mac , then use a new fresh vm as ubuntu host
2 . three virtual box fresh installed ubuntu

Installing Juju

In Ubuntu :

sudo add-apt-repository ppa:juju/stable
sudo apt-get update && sudo apt-get install juju-core

In Mac : use homebrew to install juju

brew install juju

Setting up juju manual environment

lets generate config and switch to local environment

juju generate-config
juju switch manual

now config file is generated under ~/.juju/ directory with name environments.yaml , this only configuration file that we are going to edit to configure our manual environment .

let’s bootstrap then environment

juju bootstrap

Screen Shot 2015-08-07 at 6.33.52 pm
Screen Shot 2015-08-07 at 6.33.52 pm


after successful bootstrap , you can run juju status to see juju status , notice agent-state: started line , it means juju is connected to stated and installed all the necessary packages and started the agent daemon successfully.

$ juju status

environment: manual
agent-state: started
agent-version: 1.24.3
instance-id: 'manual:'
series: trusty
hardware: arch=amd64 cpu-cores=1 mem=475M
state-server-member-status: has-vote
services: {}

Adding Machines

You can add machines by just using this juju add-machine then ssh followed by username and IP address of machine . if you don’t provide username it will use your current username , or whatever you specified in environment.yaml configuration file to use as default username .

Format :

juju add-machine ssh:[[email protected]]<host>

adding machine

juju add-machine ssh:[email protected]

// Ensure all machines must be able to connect back to host and vice-versa

Installing GUI

after successfully adding new machine let’s deploy juju gui charms to machine one . then I will show you how to add machines using nice gui

// You can pass any deployment related to juju without waiting to finish first command .

juju deploy juju-gui --to 1
juju expose juju-gui

notice --to 1 argument , its tells juju to deploy this charm to specifically on machine 1 , you can see all machine list using , juju status .
you can access juju-gui by opening browser and point it to ip of machine 1 , and you can see password by looking at ~/.juju/environments/manual.jenv file

cat ~/.juju/environments/manual.jenv  | grep "password"

to see password , login using that password , default username is admin

Juju Gui
Juju Gui

You can checkout demo juju-gui interface , here :
Now juju gui is deployed and ready to use , now you can use juju-gui to deploy services , in next post about juju I will show you how to deploy some other services in juju .

  • Home
  • Home
  • Home
lorem lasda asda adasd adsad lorem lasda asda adasd adsad lorem lasda asda adasd adsad lorem lasda asda adasd adsad lorem lasda asda adasd adsad lorem lasda asda adasd adsad