Saturday, June 4, 2016

Triple0 QuickStart HA Setup on Intel Core i7-4790 Desktop

This posting follows up Deploying OpenStack on just one hosted server   but is focused on utilizing i7 4790/4770  CPUs  with inexpensive boards like ASUS Z97-P having 32 GB RAM.  As remote workstation C2D E8400 with 8 GB RAM has been used . OS installed on both PCs was CentOS 7.2 (Release 1604). Mentioned  environment allows in about couple of hours to obtain stable working configuration based on ha.yml template :-

######################
# Template code
######################
# Deploy an HA openstack environment.
#
# This will require (6144 * 4) == approx. 24GB for the overcloud
# nodes, plus another 8GB for the undercloud, for a total of around
# 32GB.
control_memory: 6144
compute_memory: 6144

undercloud_memory: 8192

# Giving the undercloud additional CPUs can greatly improve heat's
# performance (and result in a shorter deploy time).
undercloud_vcpu: 4

# Create three controller nodes and one compute node.
overcloud_nodes:
  - name: control_0
    flavor: control
  - name: control_1
    flavor: control
  - name: control_2
    flavor: control

  - name: compute_0
    flavor: compute
  - name: compute_1
    flavor: compute

# We don't need introspection in a virtual environment (because we are
# creating all the "hardware" we really know the necessary
# information).
introspect: false

# Tell tripleo about our environment.
network_isolation: true
extra_args: >-
  --control-scale 3 --compute-scale 2 --neutron-network-type vxlan
  --neutron-tunnel-types vxlan
  -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml
  --ntp-server pool.ntp.org
deploy_timeout: 75
tempest: false
pingtest: true


**********************************************************************************
Fist fix bugs mentioned in link above on the Server's  Desktop
and run  `yum groupinstall "Virtualization Host"`
**********************************************************************************

Then start on workstation :-

$ git clone https://github.com/openstack/tripleo-quickstart
$ cd tripleo-quickstart
$ sudo bash quickstart.sh --install-deps
$ sudo yum -y  install redhat-rpm-config


$export VIRTHOST=192.168.1.75 #put your own IP here
$ ssh-keygen
$ssh-copy-id root@$VIRTHOST
$ssh root@$VIRTHOST uname -a # no root login prompt

Then run under tripleo-quickstart

$ bash quickstart.sh --config ./config/general_config/ha.yml  $VIRTHOST
 
If everything went well you will be brought back to command prompt
and see following output

##################################
Virtual Environment Setup Complete
##################################


Access the undercloud by:

 ssh -F /home/boris/.quickstart/ssh.config.ansible undercloud 
 
There are scripts in the home directory to continue the deploy:

 undercloud-install.sh will run the undercloud install
 undercloud-post-install.sh will perform all pre-deploy steps
 overcloud-deploy.sh will deploy the overcloud
 overcloud-deploy-post.sh will do any post-deploy configuration
 overcloud-validate.sh will run post-deploy validation

During overcloud deployment open remote ssh session to server and run top
You will see that memory allocation matches your  ha.yml
When done : su - stack on Server

[root@ServerCentOS72 ~]# su - stack
Last login: Sun Jun  5 09:08:16 MSK 2016 from 192.168.1.54 on pts/0
[stack@ServerCentOS72 ~]$ virsh list
 Id    Name                           State
----------------------------------------------------
 2     undercloud                     running
 8     control_1                      running
 9     compute_0                      running
 10    compute_1                      running
 11    control_0                      running
 12    control_2                      running


[stack@ServerCentOS72 ~]$ virsh dumpxml undercloud | grep vcpu
 <vcpu placement='static'>4</vcpu>
[stack@ServerCentOS72 ~]$ virsh dumpxml undercloud | grep memory
  <memory unit='KiB'>8388608</memory>
[stack@ServerCentOS72 ~]$ virsh dumpxml control_0  | grep memory
  <memory unit='KiB'>6291456</memory>
[stack@ServerCentOS72 ~]$ virsh dumpxml control_0  | grep cpu
  <vcpu placement='static'>1</vcpu>
  <cpu mode='host-passthrough'/>
[stack@ServerCentOS72 ~]$ virsh dumpxml compute_0  | grep cpu
  <vcpu placement='static'>1</vcpu>
  <cpu mode='host-passthrough'/>
[stack@ServerCentOS72 ~]$ virsh dumpxml compute_0  | grep memory
  <memory unit='KiB'>6291456</memory>
 
***************************************
Up on completion of last script run :-
***************************************
[stack@undercloud ~]$ . stackrc
[stack@undercloud ~]$ heat stack-list
+--------------------------------------+------------+-----------------+---------------------+--------------+
| id                                   | stack_name | stack_status    | creation_time       | updated_time |
+--------------------------------------+------------+-----------------+---------------------+--------------+
| 4474e9c7-74a0-4ba6-9cb4-889127a31c1f | overcloud  | CREATE_COMPLETE | 2016-06-05T06:27:44 | None         |
+--------------------------------------+------------+-----------------+---------------------+--------------+

[stack@undercloud ~]$ nova list
+--------------------------------------+-------------------------+--------+------------+-------------+---------------------+
| ID                                   | Name                    | Status | Task State | Power State | Networks            |
+--------------------------------------+-------------------------+--------+------------+-------------+---------------------+
| b1d93ac8-3e00-4f5c-8d02-73f0853c7297 | overcloud-controller-0  | ACTIVE | -          | Running     | ctlplane=192.0.2.11 |
| 69c560b7-7fcd-442e-8360-3c85f686b19f | overcloud-controller-1  | ACTIVE | -          | Running     | ctlplane=192.0.2.9  |
| ce73a87b-e49d-4b4b-9d45-b4297c39dbaf | overcloud-controller-2  | ACTIVE | -          | Running     | ctlplane=192.0.2.12 |
| 4cb7cb86-9f72-4654-ae83-34bd1e1576e7 | overcloud-novacompute-0 | ACTIVE | -          | Running     | ctlplane=192.0.2.10 |
| 391d13b4-ed9b-45d4-96a4-f97b07d53088 | overcloud-novacompute-1 | ACTIVE | -          | Running     | ctlplane=192.0.2.8  |
+--------------------------------------+-------------------------+--------+------------+-------------+---------------------+


[stack@undercloud ~]$ ssh heat-admin@192.0.2.11
Last login: Sun Jun  5 08:34:21 2016 from gateway
[heat-admin@overcloud-controller-0 ~]$ sudo su -
Last login: Sun Jun  5 08:34:26 UTC 2016 on pts/0

[root@overcloud-controller-0 ~]# . keystonerc_admin
[root@overcloud-controller-0 ~]# neutron net-list
+---------------------------------+---------------------------------+-----------------------------------+
| id                              | name                            | subnets                           |
+---------------------------------+---------------------------------+-----------------------------------+
| 548abd13-dd34-4b8a-             | public                          | 8887421f-                         |
| b3b2-ccebc87ebffa               |                                 | eb7b-4639-b7be-066873038434       |
|                                 |                                 | 192.0.2.0/24                      |
| 7fe9187a-d46c-4e03-9e1f-        | HA network tenant 773c2a0603eb4 | 967d823a-                         |
| ae4ab56ca12f                    | 72eb1ca050a69f8ddfb             | 0fb0-4e80-99b0-977dfcead5b9       |
|                                 |                                 | 169.254.192.0/18                  |
| 2530d88f-5b03-4d8c-beab-        | demo_network                    | 83c1fd7f-3ee6-49f8-bdcb-          |
| ce176394aa8f                    |                                 | 132771a875d5 50.0.0.0/24          |
+---------------------------------+---------------------------------+-----------------------------------+ 

[root@overcloud-controller-0 ~]# pcs status
Cluster name: tripleo_cluster
Last updated: Sun Jun  5 07:20:59 2016        Last change: Sun Jun  5 07:10:31 2016 by root via cibadmin on overcloud-controller-0
Stack: corosync
Current DC: overcloud-controller-2 (version 1.1.13-10.el7_2.2-44eb2dd) - partition with quorum
3 nodes and 123 resources configured

Online: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]

Full list of resources:

 ip-192.0.2.6    (ocf::heartbeat:IPaddr2):    Started overcloud-controller-0
 Clone Set: haproxy-clone [haproxy]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 ip-192.0.2.7    (ocf::heartbeat:IPaddr2):    Started overcloud-controller-1
 Master/Slave Set: galera-master [galera]
     Masters: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: memcached-clone [memcached]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: rabbitmq-clone [rabbitmq]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-core-clone [openstack-core]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Master/Slave Set: redis-master [redis]
     Masters: [ overcloud-controller-1 ]
     Slaves: [ overcloud-controller-0 overcloud-controller-2 ]
 Clone Set: mongod-clone [mongod]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-aodh-evaluator-clone [openstack-aodh-evaluator]
     Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-nova-scheduler-clone [openstack-nova-scheduler]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: neutron-l3-agent-clone [neutron-l3-agent]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: neutron-netns-cleanup-clone [neutron-netns-cleanup]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: neutron-ovs-cleanup-clone [neutron-ovs-cleanup]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 openstack-cinder-volume    (systemd:openstack-cinder-volume):    Started overcloud-controller-2
 Clone Set: openstack-heat-engine-clone [openstack-heat-engine]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-ceilometer-api-clone [openstack-ceilometer-api]
     Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-aodh-listener-clone [openstack-aodh-listener]
     Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: neutron-metadata-agent-clone [neutron-metadata-agent]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-gnocchi-metricd-clone [openstack-gnocchi-metricd]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-aodh-notifier-clone [openstack-aodh-notifier]
     Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-heat-api-clone [openstack-heat-api]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-ceilometer-collector-clone [openstack-ceilometer-collector]
     Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-glance-api-clone [openstack-glance-api]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-cinder-scheduler-clone [openstack-cinder-scheduler]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-nova-api-clone [openstack-nova-api]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-nova-consoleauth-clone [openstack-nova-consoleauth]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-sahara-api-clone [openstack-sahara-api]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-heat-api-cloudwatch-clone [openstack-heat-api-cloudwatch]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-sahara-engine-clone [openstack-sahara-engine]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-glance-registry-clone [openstack-glance-registry]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-gnocchi-statsd-clone [openstack-gnocchi-statsd]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-ceilometer-notification-clone [openstack-ceilometer-notification]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-cinder-api-clone [openstack-cinder-api]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: neutron-dhcp-agent-clone [neutron-dhcp-agent]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: neutron-openvswitch-agent-clone [neutron-openvswitch-agent]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-nova-novncproxy-clone [openstack-nova-novncproxy]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: delay-clone [delay]
     Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: neutron-server-clone [neutron-server]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-ceilometer-central-clone [openstack-ceilometer-central]
     Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: httpd-clone [httpd]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-heat-api-cfn-clone [openstack-heat-api-cfn]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
 Clone Set: openstack-nova-conductor-clone [openstack-nova-conductor]
     Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]

Failed Actions:
 
 * openstack-aodh-evaluator_monitor_60000 on overcloud-controller-1 'not running' (7): call=78, status=complete, exitreason='none',
    last-rc-change='Sun Jun  5 07:06:55 2016', queued=0ms, exec=0ms
* openstack-ceilometer-central_start_0 on overcloud-controller-1 'not running' (7): call=316, status=complete, exitreason='none',
    last-rc-change='Sun Jun  5 07:13:25 2016', queued=0ms, exec=2113ms
* openstack-aodh-evaluator_monitor_60000 on overcloud-controller-0 'not running' (7): call=77, status=complete, exitreason='none',
    last-rc-change='Sun Jun  5 07:06:52 2016', queued=0ms, exec=0ms
* openstack-ceilometer-central_start_0 on overcloud-controller-0 'not running' (7): call=268, status=complete, exitreason='none',
    last-rc-change='Sun Jun  5 07:09:40 2016', queued=0ms, exec=2209ms
* openstack-aodh-evaluator_monitor_60000 on overcloud-controller-2 'not running' (7): call=76, status=complete, exitreason='none',
    last-rc-change='Sun Jun  5 07:06:51 2016', queued=0ms, exec=0ms
* openstack-ceilometer-central_start_0 on overcloud-controller-2 'not running' (7): call=312, status=complete, exitreason='none',
    last-rc-change='Sun Jun  5 07:13:30 2016', queued=0ms, exec=2119ms


PCSD Status:
  overcloud-controller-0: Online
  overcloud-controller-1: Online
  overcloud-controller-2: Online

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled



  Neutron reports

  


   System reports
  

  
 
  

   Running instances



*****************************************************
 Connections to VMs from undercloud
*****************************************************  
 [stack@undercloud ~]$ ssh -i oskey060516.pem fedora@192.0.2.151
Last login: Sun Jun  5 09:17:05 2016 from 192.0.2.1
[fedora@vf23dev01 ~]$ uname -a
Linux vf23dev01.localdomain 4.5.5-201.fc23.x86_64 #1 SMP Sat May 21 15:29:49 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[fedora@vf23dev01 ~]$ Connection to 192.0.2.151 closed.
[stack@undercloud ~]$ ssh -i oskey060516.pem ubuntu@192.0.2.152
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-22-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

14 packages can be updated.
5 updates are security updates.


Last login: Sun Jun  5 08:32:52 2016 from 192.0.2.1
ubuntu@ubuntudevs01:~$ uname -a
Linux ubuntudevs01 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
ubuntu@ubuntudevs01:~$ logout
Connection to 192.0.2.152 closed.



   Hypervisors  on overcloud
  

  
   Server's CentOS 7.2 `top` report
  

Regarding details of ovecloud server's configuration

[root@overcloud-controller-0 network-scripts]# cat ifcfg-br-ex
# This file is autogenerated by os-net-config
DEVICE=br-ex
ONBOOT=yes
HOTPLUG=no
NM_CONTROLLED=no
DEVICETYPE=ovs
TYPE=OVSBridge
OVSBOOTPROTO=dhcp
OVSDHCPINTERFACES="eth0"
OVS_EXTRA="set bridge br-ex other-config:hwaddr=00:83:94:4b:f4:bf"

[root@overcloud-controller-0 network-scripts]# ifconfig
br-ex: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.0.2.10  netmask 255.255.255.0  broadcast 192.0.2.255
        inet6 fe80::283:94ff:fe4b:f4bf  prefixlen 64  scopeid 0x20<link>
        ether 00:83:94:4b:f4:bf  txqueuelen 0  (Ethernet)
        RX packets 1524142  bytes 482079467 (459.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1479958  bytes 289821172 (276.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::283:94ff:fe4b:f4bf  prefixlen 64  scopeid 0x20<link>
        ether 00:83:94:4b:f4:bf  txqueuelen 1000  (Ethernet)
        RX packets 1524492  bytes 482222219 (459.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1480362  bytes 289890148 (276.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  

  Watch https://www.youtube.com/watch?v=8zFQG5mKwPk&feature=autoshare  

Monday, May 23, 2016

Java EE Servers as Nova-Docker Containers && RDO Mitaka External vlan networks

  Nova-Docker driver is installed on Compute node which is supposed to run two Java EE Servers as light weight Nova-Docker Containers (instances) having floating IPs on two different external vlan enabled subnets (10.10.10.0/24; 10.10.50.0/24).  General Setup RDO Mitaka ML2&OVS&VLAN 3 Nodes.  VLAN tenant's segregation for RDO lansdcape was selected to avoid DVR configuration Controller && Compute Cluster.
Details here Setup Docker Hypervisor on Multi Node DVR Cluster RDO Mitaka

  Thus Controller/Network RDO Mitaka Node has to have external networks of VLAN type with predefined vlan tags. Straight forward packstack deployment doesn't  allow to achieve desired network configuration. External network provider of vlan type appears to be required.
   Also I have to notice that Docker Hypervisor running on Compute Node
requires all deployment nodes set SELINUX to PERMISSIVE MODE.

   In particular case, office networks 10.10.10.0/24 is vlan tagged (157), 10.10.50.0/24 is vlan tagged (172) already exists when RDO install is running.

192.169.142.127 Controller/Network
192.169.142.147 Storage Node
192.169.142.137 Compute Node
192.169.142.45   WKS ( 3VNICs eth0 - 192.169.142.45 , eth1.157 - 10.10.10.45, eth2.172 - 10.10.50.45 ), running web browser to connect to Java Servers

First

***********************************************************
Update /etc/neutron/plugins/ml2/ml2_conf.ini
***********************************************************

[root@ip-192-169-142-127 ml2(keystone_demo)]# cat ml2_conf.ini
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vlan,vxlan
mechanism_drivers =openvswitch
path_mtu = 0
[ml2_type_flat]
[ml2_type_vlan]
network_vlan_ranges =physnet1:100:200,vlan157:157:157,vlan172:172:172,physnet4
[ml2_type_gre]
[ml2_type_vxlan]
vni_ranges =10:100
vxlan_group =224.0.0.1
[ml2_type_geneve]
[securitygroup]
enable_security_group = True

**************
Then
**************

# openstack-service restart neutron

***************************************************
Invoke external network provider
***************************************************

[root@ip-192-169-142-127 ~(keystone_admin]#neutron net-create vlan157 --shared --provider:network_type vlan --provider:segmentation_id 157 --provider:physical_network vlan157 --router:external

[root@ip-192-169-142-127 ~(keystone_admin]# neutron subnet-create --name sub-vlan157 --gateway 10.10.10.1  --allocation-pool start=10.10.10.100,end=10.10.10.200 vlan157 10.10.10.0/24

***********************************************
Create second external vlan network
***********************************************

[root@ip-192-169-142-127 ~(keystone_admin]# neutron net-create vlan172 --shared --provider:network_type vlan --provider:segmentation_id 172 --provider:physical_network vlan172  --router:external

[root@ip-192-169-142-127 ~(keystone_admin]# neutron subnet-create --name sub-vlan172 --gateway 10.10.50.1 --allocation-pool start=10.10.50.100,end=10.10.50.200 vlan172 10.10.50.0/24

*************************************
Creating third flat network
*************************************

# neutron net-create external4 -- --router:external  \
  --provider:network_type=flat \
  --provider:physical_network=physnet4

# neutron subnet-create --disable-dhcp external4 192.179.143.0/24


[root@ip-192-169-142-127 ~(keystone_admin)]# neutron net-show vlan157
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| availability_zone_hints   |                                      |
| availability_zones        | nova                                 |
| created_at                | 2016-05-05T11:04:57                  |
| description               |                                      |
| id                        | 98116982-6553-4b7e-920c-0284a7200916 |
| ipv4_address_scope        |                                      |
| ipv6_address_scope        |                                      |
| is_default                | False                                |
| mtu                       | 1500                                 |
| name                      | vlan157                              |
| provider:network_type     | vlan                                 |
| provider:physical_network | vlan157                              |
| provider:segmentation_id  | 157                                  |
| router:external           | True                                 |
| shared                    | True                                 |
| status                    | ACTIVE                               |
| subnets                   | d50fddd2-46e7-4c67-8ab5-97e952bc11c9 |
| tags                      |                                      |
| tenant_id                 | 5d0e67d2fe7a403180fe77232b0cdcd5     |
| updated_at                | 2016-05-05T11:04:57                  |
+---------------------------+--------------------------------------+

[root@ip-192-169-142-127 ~(keystone_admin)]# neutron subnet-show sub-vlan157
+-------------------+--------------------------------------------------+
| Field             | Value                                            |
+-------------------+--------------------------------------------------+
| allocation_pools  | {"start": "10.10.10.100", "end": "10.10.10.200"} |
| cidr              | 10.10.10.0/24                                    |
| created_at        | 2016-05-05T11:05:27                              |
| description       |                                                  |
| dns_nameservers   |                                                  |
| enable_dhcp       | True                                             |
| gateway_ip        | 10.10.10.1                                       |
| host_routes       |                                                  |
| id                | d50fddd2-46e7-4c67-8ab5-97e952bc11c9             |
| ip_version        | 4                                                |
| ipv6_address_mode |                                                  |
| ipv6_ra_mode      |                                                  |
| name              | sub-vlan157                                      |
| network_id        | 98116982-6553-4b7e-920c-0284a7200916             |
| subnetpool_id     |                                                  |
| tenant_id         | 5d0e67d2fe7a403180fe77232b0cdcd5                 |
| updated_at        | 2016-05-05T11:05:27                              |
+-------------------+--------------------------------------------------+

[root@ip-192-169-142-127 ~(keystone_admin)]# neutron net-show vlan172
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| availability_zone_hints   |                                      |
| availability_zones        | nova                                 |
| created_at                | 2016-05-05T11:05:46                  |
| description               |                                      |
| id                        | 6fc89f42-cb85-4cdb-be5f-4d1768b05e14 |
| ipv4_address_scope        |                                      |
| ipv6_address_scope        |                                      |
| is_default                | False                                |
| mtu                       | 1500                                 |
| name                      | vlan172                              |
| provider:network_type     | vlan                                 |
| provider:physical_network | vlan172                              |
| provider:segmentation_id  | 172                                  |
| router:external           | True                                 |
| shared                    | True                                 |
| status                    | ACTIVE                               |
| subnets                   | 2d4f907b-1f80-451a-a663-b87bbd683d58 |
| tags                      |                                      |
| tenant_id                 | 5d0e67d2fe7a403180fe77232b0cdcd5     |
| updated_at                | 2016-05-05T11:05:46                  |
+---------------------------+--------------------------------------+

[root@ip-192-169-142-127 ~(keystone_admin)]# neutron subnet-show sub-vlan172
+-------------------+--------------------------------------------------+
| Field             | Value                                            |
+-------------------+--------------------------------------------------+
| allocation_pools  | {"start": "10.10.50.100", "end": "10.10.50.200"} |
| cidr              | 10.10.50.0/24                                    |
| created_at        | 2016-05-05T11:10:18                              |
| description       |                                                  |
| dns_nameservers   |                                                  |
| enable_dhcp       | True                                             |
| gateway_ip        | 10.10.50.1                                       |
| host_routes       |                                                  |
| id                | 2d4f907b-1f80-451a-a663-b87bbd683d58             |
| ip_version        | 4                                                |
| ipv6_address_mode |                                                  |
| ipv6_ra_mode      |                                                  |
| name              | sub-vlan172                                      |
| network_id        | 6fc89f42-cb85-4cdb-be5f-4d1768b05e14             |
| subnetpool_id     |                                                  |
| tenant_id         | 5d0e67d2fe7a403180fe77232b0cdcd5                 |
| updated_at        | 2016-05-05T11:10:18                              |
+-------------------+--------------------------------------------------+

Enable EPEL 7 to install vconfig ( or use ip CLI )

***************************************************
Next Step - external bridges setup on Controller
***************************************************

# modprobe 8021q
# ovs-vsctl add-br br-vlan
# ovs-vsctl add-port br-vlan eth2
# vconfig add br-vlan 157

# ovs-vsctl add-br br-vlan2
# ovs-vsctl add-port br-vlan2 eth3
# vconfig add br-vlan2 172

**********************************
External flat network
**********************************

# ovs-vsctl add-br br-eth4
# ovs-vsctl add-port  br-eth4  eth4


****************************************************
Update Neutron OVS configuration files
****************************************************
Start with the following comment in l3_agent.ini:
# When external_network_bridge is set, each L3 agent can be associated
# with no more than one external network. This value should be set to the UUID
# of that external network. To allow L3 agent support multiple external
# networks, both the external_network_bridge and gateway_external_network_id
# must be left empty. 
******************************
Update l3_agent.ini file
******************************
external_network_bridge =
gateway_external_network_id =

******************************************************
/etc/neutron/plugins/ml2/openvswitch_agent.ini
******************************************************
bridge_mappings = physnet1:br-eth1,vlan157:br-vlan,vlan172:br-vlan2,physnet4:br-eth4

*************************************
Update Neutron Configuration
*************************************

# openstack-service restart neutron

************************************************
Set up config persistent between reboots
************************************************

[root@ip-192-169-142-127 network-scripts(keystone_admin)]# cat ifcfg-eth2
DEVICE="eth2"
ONBOOT=yes
OVS_BRIDGE=br-vlan
TYPE=OVSPort
DEVICETYPE="ovs"

[root@ip-192-169-142-127 network-scripts(keystone_admin)]# cat ifcfg-eth3
DEVICE="eth3"
ONBOOT=yes
OVS_BRIDGE=br-vlan2
TYPE=OVSPort
DEVICETYPE="ovs"

[root@ip-192-169-142-127 network-scripts(keystone_admin)]# cat ifcfg-br-vlan
DEVICE=br-vlan
BOOTPROTO=none
ONBOOT=yes
TYPE=OVSBridge
DEVICETYPE="ovs"

[root@ip-192-169-142-127 network-scripts(keystone_admin)]# cat ifcfg-br-vlan2
DEVICE=br-vlan2
BOOTPROTO=none
ONBOOT=yes
TYPE=OVSBridge
DEVICETYPE="ovs"

[root@ip-192-169-142-127 network-scripts(keystone_admin)]# cat ifcfg-br-vlan.157
BOOTPROTO="none"
DEVICE="br-vlan.157"
ONBOOT="yes"
IPADDR="10.10.10.150"
PREFIX="24"
GATEWAY="10.10.10.1"
DNS1="83.221.202.254"
VLAN=yes
NOZEROCONF=yes
USERCTL=no

[root@ip-192-169-142-127 network-scripts(keystone_admin)]# cat ifcfg-br-vlan2.172
BOOTPROTO="none"
DEVICE="br-vlan2.172"
ONBOOT="yes"
IPADDR="10.10.50.150"
PREFIX="24"
GATEWAY="10.10.50.1"
DNS1="83.221.202.254"
VLAN=yes
NOZEROCONF=yes

***************************
Then run script
***************************
#!/bin/bash -x
chkconfig network on
systemctl stop NetworkManager
systemctl disable NetworkManager
service network restart

# openstack-service restart neutron

[root@ip-192-169-142-127 ~(keystone_admin)]#  ip -details link show dev br-vlan.157
34: br-vlan.157@br-vlan: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether ba:bb:33:85:aa:49 brd ff:ff:ff:ff:ff:ff promiscuity 0
    vlan protocol 802.1Q id 157 &lt;REORDER_HDR&gt; addrgenmode eui64

[root@ip-192-169-142-127 ~(keystone_admin)]#  ip -details link show dev br-vlan2.172
33: br-vlan2.172@br-vlan2: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether 0e:e7:2d:26:c3:4a brd ff:ff:ff:ff:ff:ff promiscuity 0
    vlan protocol 802.1Q id 172 &lt;REORDER_HDR&gt; addrgenmode eui64

[root@ip-192-169-142-127 ~(keystone_admin)]# ip route
default via 10.10.10.1 dev br-vlan.157 
10.10.10.0/24 dev br-vlan.157  proto kernel  scope link  src 10.10.10.150 
10.10.50.0/24 dev br-vlan2.172  proto kernel  scope link  src 10.10.50.150 
169.254.0.0/16 dev eth0  scope link  metric 1002 
169.254.0.0/16 dev eth1  scope link  metric 1003 
169.254.0.0/16 dev eth2  scope link  metric 1004 
169.254.0.0/16 dev eth3  scope link  metric 1005 
169.254.0.0/16 dev eth4  scope link  metric 1006 
169.254.0.0/16 dev br-vlan  scope link  metric 1009 
169.254.0.0/16 dev br-ex  scope link  metric 1010 
169.254.0.0/16 dev br-vlan2  scope link  metric 1012 
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1 
192.169.142.0/24 dev br-ex  proto kernel  scope link  src 192.169.142.127 

***************************
Controller/Network
***************************
[root@ip-192-169-142-127 ~(keystone_admin)]# ovs-vsctl show
d12e6a7a-f589-42cd-91b3-96156ad9ed59
    Bridge br-int
        fail_mode: secure
        Port "tap114497da-9f"
            tag: 1
            Interface "tap114497da-9f"
                type: internal
        Port "tap390b9bc5-b9"
            tag: 5
            Interface "tap390b9bc5-b9"
                type: internal
        Port "int-br-vlan2"
            Interface "int-br-vlan2"
                type: patch
                options: {peer="phy-br-vlan2"}
        Port "tap4b0c52b8-90"
            tag: 3
            Interface "tap4b0c52b8-90"
                type: internal
        Port "qr-795380c4-1d"
            tag: 2
            Interface "qr-795380c4-1d"
                type: internal
        Port "qg-b856b873-d0"
            tag: 3
            Interface "qg-b856b873-d0"
                type: internal
        Port "tap119f2a5f-2e"
            tag: 4
            Interface "tap119f2a5f-2e"
                type: internal
        Port int-br-vlan
            Interface int-br-vlan
                type: patch
                options: {peer=phy-br-vlan}
        Port "qr-2e2d2e81-14"
            tag: 1
            Interface "qr-2e2d2e81-14"
                type: internal
        Port "qg-234c2d9c-0a"
            tag: 4
            Interface "qg-234c2d9c-0a"
                type: internal
        Port "qr-41a1a0fa-ec"
            tag: 5
            Interface "qr-41a1a0fa-ec"
                type: internal
        Port br-int
            Interface br-int
                type: internal
        Port "qg-5c7b2d0a-1b"
            tag: 6
            Interface "qg-5c7b2d0a-1b"
                type: internal
        Port "int-br-eth4"
            Interface "int-br-eth4"
                type: patch
                options: {peer="phy-br-eth4"}
        Port "int-br-eth1"
            Interface "int-br-eth1"
                type: patch
                options: {peer="phy-br-eth1"}
        Port "tap936bd80d-26"
            tag: 2
            Interface "tap936bd80d-26"
                type: internal
    Bridge "br-vlan2"   <===external vlan172 network
        Port "eth3"
            Interface "eth3"
        Port "phy-br-vlan2"
            Interface "phy-br-vlan2"
                type: patch
                options: {peer="int-br-vlan2"}
        Port "br-vlan2"
            Interface "br-vlan2"
                type: internal
     Bridge "br-eth4"    <===external flat network
        Port "eth4"
            Interface "eth4"
        Port "phy-br-eth4"
            Interface "phy-br-eth4"
                type: patch
                options: {peer="int-br-eth4"}
        Port "br-eth4"
            Interface "br-eth4"
                type: internal

    Bridge br-ex
        Port br-ex
            Interface br-ex
                type: internal
        Port "eth0"
            Interface "eth0"
    Bridge "br-eth1"        <=== internal vlan enabled vm/data network
        Port "phy-br-eth1"
            Interface "phy-br-eth1"
                type: patch
                options: {peer="int-br-eth1"}
        Port "eth1"
            Interface "eth1"
        Port "br-eth1"
            Interface "br-eth1"
                type: internal
    Bridge br-vlan    <===external vlan157 network
        Port br-vlan
            Interface br-vlan
                type: internal
        Port "eth2"
            Interface "eth2"
        Port phy-br-vlan
            Interface phy-br-vlan
                type: patch
                options: {peer=int-br-vlan}
    ovs_version: "2.4.0"
[root@ip-192-169-142-127 ~(keystone_admin)]# ifconfig
br-ex: flags=4163  mtu 1500
        inet 192.169.142.127  netmask 255.255.255.0  broadcast 192.169.142.255
        inet6 fe80::3058:e2ff:fe5c:f64c  prefixlen 64  scopeid 0x20
        ether 32:58:e2:5c:f6:4c  txqueuelen 0  (Ethernet)
        RX packets 54754  bytes 12112793 (11.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 48647  bytes 15788730 (15.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

br-vlan: flags=4163  mtu 1500
        inet6 fe80::2054:9fff:feb5:b645  prefixlen 64  scopeid 0x20
        ether 22:54:9f:b5:b6:45  txqueuelen 0  (Ethernet)
        RX packets 51  bytes 6647 (6.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 298  bytes 16763 (16.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

br-vlan2: flags=4163  mtu 1500
        inet6 fe80::149a:c9ff:fe29:2240  prefixlen 64  scopeid 0x20
        ether 16:9a:c9:29:22:40  txqueuelen 0  (Ethernet)
        RX packets 497  bytes 24405 (23.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 31  bytes 4481 (4.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

br-vlan.157: flags=4163  mtu 1500
        inet 10.10.10.150  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 fe80::2054:9fff:feb5:b645  prefixlen 64  scopeid 0x20
        ether 22:54:9f:b5:b6:45  txqueuelen 0  (Ethernet)
        RX packets 34  bytes 4667 (4.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 290  bytes 14955 (14.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

br-vlan2.172: flags=4163  mtu 1500
        inet 10.10.50.150  netmask 255.255.255.0  broadcast 10.10.50.255
        inet6 fe80::149a:c9ff:fe29:2240  prefixlen 64  scopeid 0x20
        ether 16:9a:c9:29:22:40  txqueuelen 0  (Ethernet)
        RX packets 480  bytes 16181 (15.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 23  bytes 3741 (3.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163  mtu 1500
        inet6 fe80::5054:ff:fe82:e40e  prefixlen 64  scopeid 0x20
        ether 52:54:00:82:e4:0e  txqueuelen 1000  (Ethernet)
        RX packets 56233  bytes 12189701 (11.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 48639  bytes 15786905 (15.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163  mtu 1500
        inet6 fe80::5054:ff:feb2:82c  prefixlen 64  scopeid 0x20
        ether 52:54:00:b2:08:2c  txqueuelen 1000  (Ethernet)
        RX packets 4327  bytes 2918115 (2.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1882  bytes 6415333 (6.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth2: flags=4163  mtu 1500
        inet6 fe80::5054:ff:fec9:cdcf  prefixlen 64  scopeid 0x20
        ether 52:54:00:c9:cd:cf  txqueuelen 1000  (Ethernet)
        RX packets 3334  bytes 6491253 (6.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3064  bytes 2816873 (2.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth3: flags=4163  mtu 1500
        inet6 fe80::5054:ff:fe48:266f  prefixlen 64  scopeid 0x20
        ether 52:54:00:48:26:6f  txqueuelen 1000  (Ethernet)
        RX packets 2027  bytes 108290 (105.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 88  bytes 43478 (42.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth4: flags=4163  mtu 1500
        inet6 fe80::5054:ff:fe92:f712  prefixlen 64  scopeid 0x20
        ether 52:54:00:92:f7:12  txqueuelen 1000  (Ethernet)
        RX packets 1489  bytes 77816 (75.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9  bytes 718 (718.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 0  (Local Loopback)
        RX packets 422071  bytes 134700542 (128.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 422071  bytes 134700542 (128.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:e9:36:be  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


******************************************************************************************
Verification VLAN connectivity from WKS (VM) having eth1.157 &amp;&amp; eth2.172 to mentioned bellow Java Servers running on Compute Node 192.169.142.137 as Nova-Docker Containers (instances)  with floating ips on vlan157 and  vlan172 correspondently
******************************************************************************************
Network configuration on WKS

[root@VlanConnect ~]# ifconfig
eth0: flags=4163  mtu 1500
        inet 192.169.142.45  netmask 255.255.255.0  broadcast 192.169.142.255
        inet6 fe80::5054:ff:fef5:a7eb  prefixlen 64  scopeid 0x20
        ether 52:54:00:f5:a7:eb  txqueuelen 1000  (Ethernet)
        RX packets 3358  bytes 178671 (174.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 22  bytes 3676 (3.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163  mtu 1500
        inet6 fe80::5054:ff:fe2e:716c  prefixlen 64  scopeid 0x20
        ether 52:54:00:2e:71:6c  txqueuelen 1000  (Ethernet)
        RX packets 5154  bytes 1994070 (1.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1157  bytes 153055 (149.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth2: flags=4163  mtu 1500
        inet6 fe80::5054:ff:fe62:5abb  prefixlen 64  scopeid 0x20
        ether 52:54:00:62:5a:bb  txqueuelen 1000  (Ethernet)
        RX packets 3384  bytes 213816 (208.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 654  bytes 36212 (35.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1.157: flags=4163  mtu 1500
        inet 10.10.10.45  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 fe80::5054:ff:fe2e:716c  prefixlen 64  scopeid 0x20
        ether 52:54:00:2e:71:6c  txqueuelen 0  (Ethernet)
        RX packets 1823  bytes 1786566 (1.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1151  bytes 147974 (144.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


eth2.172: flags=4163  mtu 1500
        inet 10.10.50.45  netmask 255.255.255.0  broadcast 10.10.50.255
        inet6 fe80::5054:ff:fe62:5abb  prefixlen 64  scopeid 0x20
        ether 52:54:00:62:5a:bb  txqueuelen 0  (Ethernet)
        RX packets 52  bytes 38138 (37.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 647  bytes 33022 (32.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 0  (Local Loopback)
        RX packets 590  bytes 62280 (60.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 590  bytes 62280 (60.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:13:11:69  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


[root@VlanConnect ~]# ip -details link show dev eth1.157
5: eth1.157@eth1: mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether 52:54:00:2e:71:6c brd ff:ff:ff:ff:ff:ff promiscuity 0
    vlan protocol 802.1Q id 157 addrgenmode eui64


[root@VlanConnect ~]# ip -details link show dev eth2.172
6: eth2.172@eth2: mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether 52:54:00:62:5a:bb brd ff:ff:ff:ff:ff:ff promiscuity 0
    vlan protocol 802.1Q id 172 addrgenmode eui64

********************************************************************************
Attempt to launch browser to GlassFish 4.X and Tomcat 7.0 consoles
********************************************************************************

Nova-Docker instance derbyGlassfish01 on vlan157 (10.10.10.105:4848)
Nova-Docker instance  Tomcat  on vlan172  (10.10.50.105:8080)


Friday, April 22, 2016

Chrome Advanced REST Client && Creating Servers via REST API on RDO Mitaka

In posting bellow we are going to demonstrate Chrome Advanced REST Client
successfully issuing REST API POST requests for creating RDO Mitaka Servers (VMs) as well as getting information about servers via GET requests.
All required HTTP Headers are configured in GUI environment as well as
body request field for servers creation.

Version of keystone API installed v2.0

Following [ 1 ] to authenticate access to OpenStack Services, you are supposed first of all to issue an authentication request to get authentication token. If the request succeeds, the server returns an authentication token.

Source keystonerc_demo on Controller or on Compute node. It doesn't
matter. Then run this cURL command to request a token:

 curl -s -X POST http://192.169.142.54:5000/v2.0/tokens \
  -H "Content-Type: application/json" \
  -d '{"auth": {"tenantName": "'"$OS_TENANT_NAME"'", "passwordCredentials": {"username": "'"$OS_USERNAME"'", "password": "'"$OS_PASSWORD"'"}}}' \
  | python -m json.tool

to get authentication token and scroll down to the bottom :-

        "token": {
            "audit_ids": [
                "ce1JojlRSiO6TmMTDW3QNQ"
            ],
            "expires": "2016-04-21T18:26:28Z",
            "id": "0cfb3ec7a10c4f549a3dc138cf8a270a", <== X-Auth-Token
            "issued_at": "2016-04-21T17:26:28.246724Z",
            "tenant": {
                "description": "default tenant",
                "enabled": true,
                "id": "1578b57cfd8d43278098c5266f64e49f", <== Demo tenant's id
                "name": "demo"
            }
        },
        "user": {
            "id": "8e1e992eee474c3ab7a08ffde678e35b",
            "name": "demo",
            "roles": [
                {
                    "name": "heat_stack_owner"
                },
                {
                    "name": "_member_"
                }
            ],
            "roles_links": [],
            "username": "demo"
        }
    }
}

*****************************************************************************************************
Original request to obtain token might be issued via Chrome Advanced REST Client as well
*****************************************************************************************************



Scrolling down shows up token been returned and demo's tenant id



Required output

{
"access": 
{
"token": 
{
"issued_at": "2016-04-21T21:56:52.668252Z"
"expires": "2016-04-21T22:56:52Z"
"id": "dd119ea14e97416b834ca72aab7f8b5a"
"tenant": 
{
"description": "default tenant"
"enabled": true
"id": "1578b57cfd8d43278098c5266f64e49f"
"name": "demo"
}

*****************************************************************************
Next create ssh-keypair via CLI or dashboard for particular tenant :-
*****************************************************************************
nova keypair-add oskeymitaka0417 > oskeymitaka0417.pem
chmod 600 *.pem

******************************************************************************************************
Following bellow is a couple of samples REST API POST requests starting servers as they are usually described and issued ( [ 2 ] )
******************************************************************************************************

curl -g -i -X POST http://192.169.142.54:8774/v2/1578b57cfd8d43278098c5266f64e49f/servers -H "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: 0cfb3ec7a10c4f549a3dc138cf8a270a" -d '{"server": {"name": "CirrOSDevs03", "key_name" : "oskeymitaka0417", "imageRef": "2e148cd0-7dac-49a7-8a79-2efddbd83852", "flavorRef": "1", "max_count": 1, "min_count": 1, "networks": [{"uuid": "e7c90970-c304-4f51-9d65-4be42318487c"}], "security_groups": [{"name": "default"}]}}'

curl -g -i -X POST http://192.169.142. 54:8774/v2/1578b57cfd8d43278098c5266f64e49f/servers -H "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: 0cfb3ec7a10c4f549a3dc138cf8a270a" -d '{"server": {"name": "VF23Devs03", "key_name" : "oskeymitaka0417", "imageRef": "5b00b1a8-30d1-4e9d-bf7d-5f1abed5173b", "flavorRef": "2", "max_count": 1, "min_count": 1, "networks": [{"uuid": "e7c90970-c304-4f51-9d65-4be42318487c"}], "security_groups": [{"name": "default"}]}}'


**********************************************************************************
We are going to initiate REST API POST requests creating servers been
issued  via Chrome Advanced REST Client
**********************************************************************************

[root@ip-192-169-142-54 ~(keystone_demo)]# glance image-list
+--------------------------------------+-----------------------+
| ID                                   | Name                  |
+--------------------------------------+-----------------------+
| 28b590fa-05c8-4706-893a-54efc4ca8cd6 | cirros                |
| 9c78c3da-b25b-4b26-9d24-514185e99c00 | Ubuntu1510Cloud-image |
| a050a122-a1dc-40d0-883f-25617e452d90 | VF23Cloud-image       |
+--------------------------------------+-----------------------+

[root@ip-192-169-142-54 ~(keystone_demo)]# neutron net-list
+--------------------------------------+--------------+----------------------------------------+
| id                                   | name         | subnets                                |
+--------------------------------------+--------------+----------------------------------------+
| 43daa7c3-4e04-4661-8e78-6634b06d63f3 | public       | 71e0197b-fe9a-4643-b25f-65424d169492   |
|                                      |              | 192.169.142.0/24                       |
| 292a2f21-70af-48ef-b100-c0639a8ffb22 | demo_network | d7aa6f0f-33ba-430d-a409-bd673bed7060   |
|                                      |              | 50.0.0.0/24                            |
+--------------------------------------+--------------+----------------------------------------+

First required Headers were created in corresponding fields and
following fragment was placed in Raw Payload area of Chrome Client

{"server":
 {"name": "VF23Devs03",
  "key_name" : "oskeymitaka0420",
  "imageRef" : "a050a122-a1dc-40d0-883f-25617e452d90",
  "flavorRef": "2",
  "max_count": 1,
  "min_count": 1,
  "networks": [{"uuid": "292a2f21-70af-48ef-b100-c0639a8ffb22"}],
  "security_groups": [{"name": "default"}]
  }
}

Now create a couple of servers Fedora23 and Ubuntu 15.10 via Chrome Advanced REST Client GUI interface




***************************************************************************************
Re-launch Chrome REST Client again for servers verification via GET request
***************************************************************************************

 

Just in case run `nova list`