Juju installation (release 0): Difference between revisions

From OSM Public Wiki
Jump to: navigation, search
No edit summary
No edit summary
Line 3: Line 3:
Initially setup 2 Ubuntu 14.04 LTS VMs with 4 vcpu, 4G RAM and 40GB drive. Create user juju in sudo group (usermod -a -G sudo juju)
Initially setup 2 Ubuntu 14.04 LTS VMs with 4 vcpu, 4G RAM and 40GB drive. Create user juju in sudo group (usermod -a -G sudo juju)


#The first is juju jump server (or juju client) VM (10.95.172.10). This VM is only required for manual execution of juju commands and charms debugging.
#The first is juju client VM (or juju jump server) (10.95.172.10). This VM is only required for manual execution of juju commands and charms debugging.
#The second is juju server VM (10.95.172.193). This VM will receive commands from Juju client VM when doing manual testing, or directly from Rift.io Launchpad VM in OSM context. Juju charms will be deployed as containers in this VM
#The second is juju server VM (10.95.172.193). This VM will receive commands from Juju client VM when doing manual testing, or directly from Rift.io Launchpad VM in OSM context. Juju charms will be deployed as containers in this VM


On juju client VM:
On juju client VM:
*install juju:
#Install juju:
  sudo apt-get install python-software-properties
  sudo apt-get install python-software-properties
  sudo add-apt-repository ppa:juju/stable
  sudo add-apt-repository ppa:juju/stable
  sudo apt-get update
  sudo apt-get update
  sudo apt-get install juju-quickstart juju-core
  sudo apt-get install juju-quickstart juju-core
*configure the connection to juju server VM in manual provider mode: ensure to have the following in your ~/.juju/environements.yaml
#Configure the connection to juju server VM in manual provider mode: ensure to have the following in your ~/.juju/environements.yaml
  environments:
  environments:
   mwc16manual:
   mwc16manual:
Line 20: Line 20:
     default-series: trusty
     default-series: trusty
     type: manual
     type: manual
#Execute the following commands to connect both VMs:
juju switch mwc16manual
juju bootstrap --upload-tools
#As a nice optional add-on deploy juju-gui to graphically monitor juju status
juju deploy juju-gui --to 0
Once done you can connect via https to the IP of the server.
More information on the bootstrap process is available here: https://jujucharms.com/docs/1.25/config-manual


On juju server VM:
On juju server VM:
Line 33: Line 41:
LXC_DHCP_RANGE="10.1.3.2,10.1.3.254"
LXC_DHCP_RANGE="10.1.3.2,10.1.3.254"
Adapt to you need if necessary.
Adapt to you need if necessary.
At this stage it is recommended to reboot to see if the networks are ok and resilient.
Setting up Juju
On the juju client ensure to have the following in your ~/.juju/environements.yaml


environments:
  mwc16manual:
    admin-secret: nfvjuju
    bootstrap-host: 10.95.172.193
    bootstrap-user: juju
    default-series: trusty
    type: manual
Then :
● juju switch mwc16manual
● juju bootstrap --upload-tools


More information on the bootstrap process is available here: https://jujucharms.com/docs/1.25/config-manual


As a nice optional add-on :
● juju deploy juju-gui --to 0
Once done you can connect via https to the IP of the server.


More about using juju : https://github.com/juju/cheatsheet  
More about using juju : https://github.com/juju/cheatsheet  

Revision as of 10:58, 20 April 2016

This document intent is to provide a practical way to reproduce the environment in Telefonica lab (TEF) aim at running the demo scenario for Mobile World Congress 2016. It is not an explanation or long term recommendation for using juju.

Initially setup 2 Ubuntu 14.04 LTS VMs with 4 vcpu, 4G RAM and 40GB drive. Create user juju in sudo group (usermod -a -G sudo juju)

  1. The first is juju client VM (or juju jump server) (10.95.172.10). This VM is only required for manual execution of juju commands and charms debugging.
  2. The second is juju server VM (10.95.172.193). This VM will receive commands from Juju client VM when doing manual testing, or directly from Rift.io Launchpad VM in OSM context. Juju charms will be deployed as containers in this VM

On juju client VM:

  1. Install juju:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:juju/stable
sudo apt-get update
sudo apt-get install juju-quickstart juju-core
  1. Configure the connection to juju server VM in manual provider mode: ensure to have the following in your ~/.juju/environements.yaml
environments:
 mwc16manual:
   admin-secret: nfvjuju
   bootstrap-host: 10.95.172.193
   bootstrap-user: juju
   default-series: trusty
   type: manual
  1. Execute the following commands to connect both VMs:
juju switch mwc16manual
juju bootstrap --upload-tools
  1. As a nice optional add-on deploy juju-gui to graphically monitor juju status
juju deploy juju-gui --to 0

Once done you can connect via https to the IP of the server.

More information on the bootstrap process is available here: https://jujucharms.com/docs/1.25/config-manual

On juju server VM:

  • Configure it to access the management networks of openvim and openstack
  • Change the default lxc

In TEF we use 10.0.3.0 which is the default lxc network so need to change that first: ● sudo apt-get install systemd-services lxc Edit /etc/default/lxc-net to have something like :

	LXC_BRIDGE="lxcbr0" 

LXC_ADDR="10.1.3.1" LXC_NETMASK="255.255.255.0" LXC_NETWORK="10.1.3.0/24" LXC_DHCP_RANGE="10.1.3.2,10.1.3.254" Adapt to you need if necessary.



More about using juju : https://github.com/juju/cheatsheet

Charms for MWC :

Get the charms (do once) Let’s create a local repo of charms for convenience: ● mkdir -p ~/mwc16charms/trusty ● cd ~/mwc16charms/trusty ● git clone git@github.com:6WIND/LinuxPE.git vpe-router ● git clone -b clearwater-aio-proxy https://github.com/Metaswitch/clearwater-juju.git ● cp -rf clearwater-juju/charms/trusty/clearwater-aio-proxy/ .

To deploy ● cd ~/mwc16charms/ ● juju deploy local:trusty/vpe-router --to lxc:0 vpe1 ● juju deploy local:trusty/vpe-router --to lxc:0 vpe2 ● juju deploy local:trusty/vpe-router --to lxc:0 vpe3 ● juju deploy local:trusty/clearwater-aio-proxy --to lxc:0 ims-a ● juju deploy local:trusty/clearwater-aio-proxy --to lxc:0 ims-b

You can then configure/run actions on them.

Using the API: ● juju api-endpoints Will give you the IP:Port to connect the juju client API code to.