Monday, November 24, 2014

How to Install OpenStack Juno on VirtualBox via DevStack

In my previous post, I share how to set up your own openstack lab via devstack. After I played around the devstack lab, I think I can make whole set up easier. Here, I would like to share how to set up the newest openstack release - juno. The general steps list as below.


  1. Setup VirtualBox
  2. Install Unbuntu
  3. Clone Code from GitHub and Execute ./stack.sh
  4. Connect to Horizon ( web management console ) and command line.

1. Setup VirtualBox
    a. CPU: 1 Processor
    b. Memory: 4GB
    c. HDD(Drive Space): 40GB
    d. Two Network Adaptors: 1 NAT, 2 Host-only

cpu:


Memory:


Drive Space:


NCI (Network Adaptor)1 :




















NCI (Network Adaptor)2 :

Update:
if you would like to connect from another laptop in the local LAN, you can try to add 3rd NIC card (NCI (Network Adaptor)3 :) and set up with "Bridge Adapter" (Some people said port forwarding, but I used Bridge). When you check the ip addr / ifconfig you will see there has IP against the 3rd NIC card.

2. Install Ubuntu
I install unbuntu 14.04 desktop version (ubuntu-14.04.1-desktop-amd64.iso). I skip this since there has lots of online resources.

3. Clone code and run ./Stack.sh
After you setup your ubuntu box, login and launch command line ( terminal ) and execute the command as below


# sudo apt-get update
# sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo reboot

sudo apt-get install git

git clone -b stable/juno https://github.com/openstack-dev/devstack.git
cd devstack
wget https://dl.dropboxusercontent.com/u/44260569/localrc
./stack.sh

Installation Done ! username: admin / demo and password: devstack



























ps: 
  • Download juno version from github is using -b ( branch ) to version juno.
  • I prepared the localrc for juno. You can download it via wget. localrc is old version configuration file, the new configuration file is local.conf but when setup program check there has localrc, it will reference it first, otherwise it will follow local.conf. 
  • If you want to change user account (admin or demo) to your password, you can edit localrc file. However, it's better to use vim (# sudo apt-get install vim ) since vi is painful when I use it.
  • ./stack.sh will take a while, but if your OS is forced to sleep via such as screen saver, you better to stop it or watch it when it running to avoid the interruption.


4. Connect to horizon and ssh
Since I setup 2nd host-only Network adapter. The 1st NCI card is eth0 and 2nd should be eth1. You just try the command(# ifconfig) to get the eth1 IP address and should be able to connect to your juno lab via it.

Check 2nd NCI, eth1 via linux cli
# ifconfig

Use Host-only Adaptor's IP for horizon login




























Connect via SSH


















PS: SSH login via username demo and password devstack.
You can run source openrc admin admin to grant admin privilege for your command line test after you login.

here is the example.
# cd devstack
# source openrc admin admin

This is easier way I found so far, please free to share if you found the better way to setup the newest release openstack lab.

PS: the solution of the post has some issues, I listed as below fyi. For these issues, I will study and post the follow up solutions for it.

  • All OpenStack Modules works but SWIFT. 
I actually fixed the issue. Here is the solution which updated the localrc (the dropbox download has been updated) and add parameter as below. 


# SWIFT - Object Storage

ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account



Now, the swift is running ok , here is the example. I create on "Container1" and upload two files (objects).








  • After reboot, the virtualbox network configuration might corrupt. You might take a snapshot after your first installation and retrieve the status back.
I read some blogs mentioned about the services didn't up after reboot. Some people said it's a known issue and some people said it's not a "issue" but is that way by design. No matter how, I post the update as below which may helps you restart the devstack services.

Restart DevStack

1. First make sure your volume up.
Bring volume group online so that cinder-volume will start without errors

    ls demo@demo-juno:/opt/stack/data

double check your cinder-volume name. and you losetup to set up and control loop devices.
sudo losetup -f /opt/stack/data/stack-volumes-backing-file
2. Use rejoin-stack.sh to restart the DevStack
./rejoin-stack.sh

3 comments:

  1. 2015-08-28 15:12:09.882 | + python update.py /opt/stack/keystone
    2015-08-28 15:12:10.305 | Traceback (most recent call last):
    2015-08-28 15:12:10.306 | File "update.py", line 273, in
    2015-08-28 15:12:10.307 | main()
    2015-08-28 15:12:10.308 | File "update.py", line 256, in main
    2015-08-28 15:12:10.309 | options.hacking, stdout, options.verbose, non_std_reqs)
    2015-08-28 15:12:10.310 | File "update.py", line 268, in _do_main
    2015-08-28 15:12:10.311 | proj, global_reqs, suffix, softupdate, hacking, non_std_reqs)
    2015-08-28 15:12:10.313 | File "update.py", line 223, in _process_project
    2015-08-28 15:12:10.314 | suffix, softupdate, hacking, project, global_reqs, non_std_reqs)
    2015-08-28 15:12:10.314 | File "update.py", line 212, in _copy_requires
    2015-08-28 15:12:10.315 | dest_path, project.merge_setup_cfg(proj['setup.cfg'], output_extras)))
    2015-08-28 15:12:10.320 | KeyError: 'setup.cfg'
    2015-08-28 15:12:10.353 | + exit_trap
    2015-08-28 15:12:10.353 | + local r=1
    2015-08-28 15:12:10.377 | ++ jobs -p
    2015-08-28 15:12:10.391 | + jobs=
    2015-08-28 15:12:10.400 | + [[ -n '' ]]
    2015-08-28 15:12:10.400 | + kill_spinner
    2015-08-28 15:12:10.401 | + '[' '!' -z '' ']'
    2015-08-28 15:12:10.403 | + [[ 1 -ne 0 ]]
    2015-08-28 15:12:10.403 | + echo 'Error on exit'
    2015-08-28 15:12:10.404 | Error on exit
    2015-08-28 15:12:10.406 | + [[ -z /opt/stack/logs ]]
    2015-08-28 15:12:10.406 | + /home/shreyas/OpenStack/devstack/tools/worlddump.py -d /opt/stack/logs
    2015-08-28 15:12:10.831 | + exit 1

    Can't move past this. Help.

    ReplyDelete
    Replies
    1. Are you start from scratch ? Or just rejoin-stack.sh ? I can't get too much info from partial of log. it looks like a credential issue ( KeyError )

      Delete
  2. Wonderful blog. This blog nicely explain OpenStack network configuration. Thanks for sharing.

    ReplyDelete