Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
444 lines (333 sloc) 9.97 KB

Openstack Juno installation guide on multinode

Content

A. Lab information

A.0 Preparations on VMware Workstation

[A.1. Deployment model on VMware Workstation] (#deployment)

A.2 Nodes configuration

B. General execution steps

C. Installation on CONTROLLER NODE

D. Installation on NETWORK NODE

E. Installation on COMPUTE NODE

F. Installing HORIZON, creating networks on CONTROLLER NODE

End

A. LAB information

A.0. Preparations on VMware Workstation

Configurations of vmnets on vmware workdstation in the following figures.

  • VMNET0 - Bridge mode, 192.168.1.0/24
  • VMNET2 - VMNET 2. IP range: 10.10.10.0/24
  • VMNET3 - VMNET 3. IP range: 10.10.20.0/24 Go to "Edit" tab ==> Virtual Network Editor. Alt text

A.1. Deployment model in VMware Workstation

3 nodes model of Openstack deployment in a laptop.

Alt text

A.2. Configuration of each node

  • Ubuntu installation in Vmware Workstation must be ensured by the order of network.
  • Ip addresses of NICs are dynamic, shell scripts will automatically assign static IPs later.(written in files config.cfg
A.2.1. Minimum config of CONTROLLER
  • HDD: 20GB
  • RAM: 2GB
  • CPU: 02 (Virtualization support)
  • NIC: 02 NICs (eth0 - vmnet2 ) (eth1 - brige). Dynamic IP.

As showed as following figure: Alt text

A.2.2. Minimum config of NETWORK NODE
  • HDD: 20GB
  • RAM: 2GB
  • CPU 01 (Virtualization support)
  • NICs: 03. eth0-vmnet2. eth1-bridge . eth2-vmnet3. Dynamic IP.
  • Hostname: network

As showed as following figure:

Alt text

A.2.3. Minimum config of COMPUTE NODE (COMPUTE1)
  • HDD: 60GB
  • RAM: 3GB
  • CPU 2x2 (Virtualization support)
  • NICs: 03. eth0-vmnet2. eth1-bridge . eth2-vmnet3. Dynamic IP.
  • Hostname: compute1

As showed as following figure:

Alt text

B. General execution steps

B.1. Manipulations on host machines.

Access under the "root" user into host machines and install packages, preparation scripts for installing process.

apt-get update

apt-get install git -y
	
git clone https://github.com/vietstacker/openstack-juno-multinode-U14.04-v1.git
	
mv /root/openstack-juno-multinode-U14.04-v1/juno-ubuntu14.04/ juno-ubuntu14.04

rm -rf openstack-juno-multinode-U14.04-v1

cd juno-ubuntu14.04/

chmod +x *.sh

B.2. Modifying configurations before executing the shells.

Before modifying, no need to assign static IP to NICs on each host machine. Modify the file config.cfg lying in the repo juno-ubuntu14.04 with your own IPs or remain IPs and ensure that they are not used by other machines in your network.

Here is initial file : .... # IP assignment in CONTROLLER NODE CON_MGNT_IP=10.10.10.71 CON_EXT_IP=192.168.1.71

# IP assignment in NETWORK NODE
NET_MGNT_IP=10.10.10.72
NET_EXT_IP=192.168.1.72
NET_DATA_VM_IP=10.10.20.72

# IP assignment in COMPUTE1 NODE
COM1_MGNT_IP=10.10.10.73
COM1_EXT_IP=192.168.1.73
COM1_DATA_VM_IP=10.10.20.73

# IP assignment in COMPUTE2 NODE
COM2_MGNT_IP=10.10.10.74
COM2_EXT_IP=192.168.1.74
COM2_DATA_VM_IP=10.10.20.74

GATEWAY_IP=192.168.1.1
NETMASK_ADD=255.255.255.0

# Set password
DEFAULT_PASS='Welcome123'

.....

Execution in each node

C. Execution on the CONTROLLER NODE

C.1. Scripts execution

bash control-1.ipadd.sh

After executing scripts, the Controller will restart and has the following parameters:

Hostname NICs IP ADDRESS SUBNET MASK GATEWAY DNS Note
controller eth0 10.10.10.71 255.255.255.0 VMNET2
eth1 192.168.1.71 255.255.255.0 192.168.1.1 8.8.8.8 brige

C.2. MYSQL, NTP installations on the Controller Node

Access to the controller node with the address of CON_EXT_IP declared in the file config.cfg 192.168.1.71 under the "root" user.

cd juno-ubuntu14.04
bash control-2.prepare.sh

C.3. Creating Database

bash control-3.create-db.sh

C.4 Configuring and installing keystone

bash control-4.keystone.sh

C.5. Creating user, role, tenant, endpoint and privilege for user


Creates endpoints to the services. The parameters in shell are get from config.cfg

bash control-5-creatusetenant.sh

Executing the openrc file

source admin-openrc.sh

Checking again keystone service

keystone user-list

Result of keystone user-list

    +----------------------------------+---------+---------+-----------------------+
    |                id                |   name  | enabled |         email         |
    +----------------------------------+---------+---------+-----------------------+
    | eda2f227988a45fcbc9ffb0abd405c6c |  admin  |   True  |  congtt@teststack.com |
    | 07f996af33f14415adaf8d6aa6b8be83 |  cinder |   True  |  cinder@teststack.com |
    | 6a198132f715468e860fa25d8163888e |   demo  |   True  |  congtt@teststack.com |
    | 4fa14e44dafb48f09b2febaa2a665311 |  glance |   True  |  glance@teststack.com |
    | 5f345c4a266d4c7691831924e1eec1f5 | neutron |   True  | neutron@teststack.com |
    | d4b7c90da1c148be8741168c916cf149 |   nova  |   True  |   nova@teststack.com  |
    | ddcb21870b4847b4b72853cfe7badd07 |  swift  |   True  |  swift@teststack.com  |
    +----------------------------------+---------+---------+-----------------------+

Installation of other services

C.6. GLANCE installation

bash control-6.glance.sh

C.7 NOVA installation

bash control-7.nova.sh

C.8 NEUTRON installation

bash control-8.neutron.sh

C.9 CINDER installation

bash control-9.cinder.sh

D. Installation on the NETWORK NODE

  • Installing NEUTRON, ML2 and GRE config, using use case per-router per-tenant.

Access to the NETWORK NODE under the "root" user

apt-get update

apt-get install git -y
	
git clone https://github.com/vietstacker/openstack-juno-multinode-U14.04-v1.git
	
mv /root/openstack-juno-multinode-U14.04-v1/juno-ubuntu14.04/ juno-ubuntu14.04

rm -rf openstack-juno-multinode-U14.04-v1

cd juno-ubuntu14.04/

chmod +x *.sh

D.1. Configuring IP, Hostname for NETWORK NODE

Script for OpenvSwitch installtion and declaring br-int & br-ex for OpenvSwitch

bash net-ipadd.sh
  • NETWORK NODE will restart, access again under the "root" user.
  • IP và hostname parameters on the NETWORK NODE:
Hostname NICs IP ADDRESS SUBNET MASK GATEWAY DNS NOTE
network eth0 10.10.10.72 255.255.255.0 VMNET2
br-ex 192.168.1.72 255.255.255.0 192.168.1.1 8.8.8.8 bridge
eth2 10.10.20.72 255.255.255.0 VMNET3

Note: Shell will move eth1 to the promisc mode and assign IP for br-ex created after OpenvSwitch installation.

D.2. NEUTRON installation and configuration

  • Using putty to ssh to the NETWORK NODE through IP 192.168.1.172 with "root" user
cd juno-ubuntu14.04
bash net-prepare.sh

End of installing on the NETWORK NODE and move to COMPUTE NODE

E. Installing on the COMPUTE NODE (COMPUTE1)

apt-get update

apt-get install git -y
	
git clone https://github.com/vietstacker/openstack-juno-multinode-U14.04-v1.git
	
mv /root/openstack-juno-multinode-U14.04-v1/juno-ubuntu14.04/ juno-ubuntu14.04

rm -rf openstack-juno-multinode-U14.04-v1

cd juno-ubuntu14.04/

chmod +x *.sh

E.1. Assigning hostname, IP and support packages

bash com1-ipdd.sh

NICs of COMPUTE NODE will be following:

Hostname NICs IP ADDRESS SUBNET MASK GATEWAY DNS NOTE
compute1 eth0 10.10.10.73 255.255.255.0 VMNET2
br-ex 192.168.1.73 255.255.255.0 192.168.1.1 8.8.8.8 bridge
eth2 10.10.20.73 255.255.255.0 VMNET3

COMPUTE node will restart, access again to execute the following scripts

E.2. Installing NOVA packages for COMPUTE NODE

Access to the compute node

cd juno-ubuntu14.04
bash com1-prepare.sh

Choose "YES"

Alt text

End of COMPUTE NODE installing, move back to the CONTROLLER NODE.

F. Installation on the CONTROLLER NODE

F.1. Installing Horizon

Access to the controller node

    cd /root/juno-ubuntu14.04
	
    bash control-horizon.sh

F.2. Creating PUBLIC NET, PRIVATE NET, ROUTER

Create policies to allow external machines to access to the instances via IP PUBLIC. Execute the following scripts to create networks for Openstack Create router, assign subnet to router, gateway to router Initiate a virtual machine with cirros image to test

    bash creat-network.sh

Restarting nodes

Restart nodes in order:

  • CONTROLLER
  • NETWORK NODE
  • COMPUTE NODE

The end

Have fun!