User Tools

Site Tools


copper:academy:previous

Earlier Attempts

Take 5 - OpenStack on main host and compute hosts under KVM

OpenStack running in a VM had touble being reachable from compute hosts outside the main host machine. So dropping back to running OpenStack on the host machine directly, until I figure out how to resolve the connectivity issue (maybe the bridged networking config below would help with that - it's a recent change which was needed to allow the compute hosts running in VMs to connect to OpenStack…).

Starting with Ubuntu 14.04 LTS Server
  • installed with SSH server, LAMP, Tomcat Java, and Virtualization as options
    • In the process you will be asked to setup a MYSQL password - remember it for below
  • Get the basic server setup
    • sudo apt-get update
    • sudo apt-get upgrade
    • sudo apt-get install ubuntu-desktop
    • sudo apt-get install virtinst
    • sudo apt-get install virt-manager
    • sudo apt-get install hal-info
    • sudo apt-get install qemu-system
    • sudo apt-get install git -y
    • Setup bridged networking for local VMs
    • sudo /etc/init.d/networking restart
    • to be safe, reboot
  • Install OpenStack
    • cd devstack
    • customize the configurtion file that will used to setup OpemStack
    • cp samples/local.conf .
    • vi local.conf
      • FLAT_INTERFACE=(your ethernet interface)
      • ADMIN_PASSWORD=(something you will remember - you will use this to login to the Horizon UI)
      • MYSQL_PASSWORD=(mysql root password)
      • RABBIT_PASSWORD=(something you will remember)
      • SERVICE_PASSWORD=(something you will remember)
    • ./stack.sh
    • If all goes well, you will get an output of key items at the end of the script e.g.
      • Horizon is now available at http://192.168.1.132/
      • Keystone is serving at http://192.168.1.132:5000/v2.0/
      • Examples on using novaclient command line is in exercise.sh
      • The default users are: admin and demo
      • The password: opnfv
      • This is your host ip: 192.168.1.132
  • Setup Compute controller service
    • Make sure compute nodes can connect to the rabbitmq service. After setting up compute hosts, an "invalid credentials" error may be found in the logs: "grep credentials /var/log/rabbitmq/* -B 3"
      • sudo rabbitmqctl change_password guest opnfv
  • Setup compute hosts to connect to OpenStack
    • Prerequisite: see Basic Compute Host Install below
    • sudo apt-get install nova-compute-kvm
    • Customize the nova compute config file
      • sudo vi /etc/nova/nova.conf
      • glance_host = 192.168.1.132
        my_ip = 192.168.122.209
        vnc_enabled = True
        vncserver_listen = 192.168.1.132
        vncserver_proxyclient_address = 192.168.1.132
        novncproxy_base_url = http://192.168.1.132:6080/vnc_auto.html
        rpc_backend = rabbit
        rabbit_host = 192.168.1.132
        rabbit_password = opnfv
        auth_strategy = keystone
        
        [keystone_authtoken]
        auth_uri = http://192.168.1.132:5000
        auth_host = ubuntu-1404-openstack
        auth_port = 35357
        auth_protocol = http
        admin_tenant_name = service
        admin_user = nova
        admin_password = opnfv
        
        [database]
        # The SQLAlchemy connection string used to connect to the database
        connection = mysql://nova:opnfvmysql@192.168.1.132/nova
    • verify that your machine supports hardware acceleration (returns 1)
      • egrep -c '(vmx|svm)' /proc/cpuinfo
      • if it returns 0 see further instructions linked above
    • sudo rm /var/lib/nova/nova.sqlite
    • sudo service nova-compute restart
  • In Horizon, verify that your compute hosts show up in the System / Hypervisors view
  • After restarting your host machine
    • sh ./devstack/rejoin-stack.sh
Basic KVM-Based Compute Host Install
  • The following assumes you will use Ubuntu 14.04 LTS Server for the VM host
  • Create a new Virtual Machine Manager image for the VM
    • If the image is not in qcow2 format already
      • Starting from a vmdk (VMWare image): example for JeOS 14.04 (very minimal Ubuntu image)
        • qemu-img convert ub1404lts-disk1.vmdk -O qcow2 jeos1404.qcow2
      • Starting from ISO: example for Ubuntu 14.04
        • qemu-img create -f qcow2 ubuntu-1404.qcow2 10G
        • virt-install –virt-type kvm –name trusty –ram 1024 –cdrom=ubuntu-14.04-server-amd64.iso –disk ubuntu-1404.qcow2,format=qcow2 –network network=default –graphics vnc,listen=0.0.0.0 –noautoconsole –os-type=linux –os-variant=ubuntutrusty
    • If when you run Virtual Machine Manager, your CM is not aleady there (due to virt-install above)
      • Create new VM and select import existing image. Hit Forward.
      • browse ("local") to the qcow2 file folder
      • select OS type "linux". Hit Forward
      • select RAM (min 1048) and CPUs (leave at 1 is OK). Hit Forward.
      • Select "customize configuration". Hit Finish.
      • Under Disk 1 select advanced options and select Storage Format qcow2. Hit Apply.
      • Hit Begin Installation.
  • Run Virtual Machine Manager
  • Select the VM you want to initialize, and select Run
  • If the VM is from an install disk (ISO), you will get the Ubuntu installer.
    • Customize the options if you want; the below assumes no options selected
  • When install is complete, reboot the VM and login
  • sudo apt-get update
  • sudo apt-get upgrade
  • sudo apt-get install openssh-server
    • this will make it easier to manage hosts later, e.g. to enable copy/paste paste
  • How to customize the VM with LAMP support
    • sudo apt-get update
    • sudo apt-get install lamp-server^
      • the carat is important for some reason - needs to be in the command…
    • select a mysql password when prompted
Cloning VMs
  • Use Virtual Machine Manager to clone into the desired compute hosts, e.g. I started with ubuntu-1404 and cloned into ubuntu-1404-h1 and ubuntu-1404-h2
  • Select "Clone" (not share disk)
  • Boot the VMs, and update the configs
    • Hostname (replace ubuntu with ubuntu-1404-h1 or ubuntu-1404-h2 or etc as applicable)
      • sudo hostname ubuntu-1404-h1
      • sudo vi /etc/hostname
      • sudo vi /etc/hosts
        • Add ubuntu-1404-h1 to 127.0.0.1
        • If 127.0.1.1 is there (? why), delete that row

Take 4 - OpenStack and compute hosts under KVM

To address some of the potential snags occurring due to conflicts between OpenStack, ODL, OVS, libvirt, … I am switching to running OpenStack and compute nodes under KVM VMs, with the addition of other compute nodes on other machines. At this point ODL is not in the picture as I have to figure out how the whole flat network approach works first. And the goal for this initial sandbox will be to get off the ground with policy feature assessment in OpenStack, so ODL can wait until I learn it better or get guidance on how to factor it into this setup.

At this point I have most of the above working. What is not currently working is getting the external compute node connected to OpenStack nova, likely some firewall issue with KVM that I need to fix.

I'll post details on how this was setup soon.

Take 3 - Ubuntu 14.04 host

Returning to a more direct approach, this time will ensure component independence by installing: * OpenStack on host OS * ODL in VM managed by OpenStack

Decided pretty quickly that as some of the earlier issues may have been with running OpenStack on the host directly, I would switch to trying it in a VM (take 4).

Take 2 - Foreman - assisted install

Trying out Foreman to see if it helps get past some of the basic issues with the manual install.

. . .

Take 1 - manual install

Here is a graphic of the concept. This is very draft and leaves many things unclear partly because I'm not sure how to do them yet.

This procedure is not being further pursued at the moment… too many undocumented things about the overall setup of OpenStack, ODL, etc…

Restart process for For sandbox based upon host OS: Unbuntu 14.04 Server LTS

  • devstack/rejoin-stack.sh
  • from Horizon, launch mininet-vm created earlier
  • ssh to mininet VM and enter
    • sudo mn –controller=remote,ip=192.168.1.132
  • back in ubuntu terminal
  • cd distribution-karaf-0.2.1-Helium-SR1.1
  • ./bin/karaf clean
  • (currently here in the debug process) install enough ODL features to get ODL UX working (ports 8080 and 8181)
  • feature:install odl-restconf odl-l2switch-switch odl-mdsal-apidocs odl-dlux-core

Restart process for sandbox based upon host OS: Unbuntu 14.04 Server LTS

  1. Ensure you have enable virtualization support in your BIOS
  2. Install Ubuntu. I selected options for SSH, LAMP, VM host.
    • Make sure you remember the mysql root password - you will need it below
  3. install updates
    • sudo apt-get update
    • sudo apt-get upgrade
  4. install ubuntu desktop: sudo apt-get install ubuntu-desktop
    • Qemu requires a window system… something lighter than desktop env wil
  5. install Java 7
    • I used the notes from ubuntuhandbook
    • sudo add-apt-repository ppa:webupd8team/java
    • sudo apt-get update
    • sudo apt-get install oracle-java7-installer
    • sudo apt-get install oracle-java7-set-default
    • export JAVA_HOME=/usr/lib/jvm/java-7-oracle
    • sudo vi /etc/environment
      • (add a line: JAVA_HOME=/usr/lib/jvm/java-7-oracle)
  6. install git: sudo apt-get install git -y
  7. Install OpenStack (DevStack)
    • cd devstack
    • Create local.conf: cp samples/local.conf .
    • Add/replace these lines: vi local.conf
      • FLAT_INTERFACE=(your ethernet interface)
      • ADMIN_PASSWORD=(something you will remember - you will use this to login to the Horizon UI)
      • MYSQL_PASSWORD=(mysql root password)
      • RABBIT_PASSWORD=(something you will remember)
      • SERVICE_PASSWORD=(something you will remember)
    • Start the devstack install: ./stack.sh
    • If all goes well, you will get an output of key items at the end of the script
    • If you hit an error related to the mysql root password, you can reset it and try again
      • sudo mysql –defaults-file=/etc/mysql/debian.cnf
      • mysql> UPDATE mysql.user SET Password=PASSWORD('mysql root password') WHERE User='root';
      • mysql> FLUSH PRIVILEGES;
      • mysql> quit;
      • mysql -u root -p
    • At this point you should be able to login to Horizon at your installed server e.g. http://192.168.1.132/ using the account "admin" and the ADMIN_PASSWORD you set above.
  8. install and configure mininet
    • convert to QCOW2 format
    • unzip mininet.zip
    • qemu-img convert -O qcow2 mn-2.2.0-trusty64server-150106-01-30-00/mininet-vm-x86_64.vmdk mn-2.2.0-trusty64server-150106-01-30-00/mininet-vm-x86_64.qcow2
    • In Horizon, create image for mininet-vm
      • create from file in qcow2 format
      • min RAM = 1024
  9. Install openvswitch: sudo apt-get install openvswitch-switch
  10. Install OpenDaylight Controller (see Install Guide)
    • unzip Helium-SR1.1.zip
    • cd distribution-karaf-0.2.1-Helium-SR1.1
    • ./bin/karaf
    • You should get the OpenDaylight prompt "opendaylight-user@root>"
    • verify it's working with: feature:list
    • install the ODL components
      • feature:install odl-base-all odl-aaa-authn odl-restconf odl-nsf-all odl-adsal-northbound odl-mdsal-apidocs odl-ovsdb-openstack odl-ovsdb-northbound odl-dlux-core
        • start with this minimal set of features per the video ¨ODL & OpenStack Discussion
        • will pull these additional features as I find they are essential
          • feature:install odl-mdsal-all odl-restconf-all odl-ovsdb-all odl-openflowplugin-flow-services-ui odl-sfc-all odl-groupbasedpolicy-ofoverlay odl-dlux-all odl-config-persister-all odl-aaa-all odl-ttp-all odl-openflowplugin-all odl-adsal-compatibility-all odl-tcpmd5-all odl-adsal-all odl-config-all odl-netconf-all odl-base-all odl-yangtools-all odl-integration-compatible-with-all odl-netconf-connector-all odl-akka-all odl-l2switch-switch odl-mdsal-apidocs odl-aaa-authn
          • (can't find a feature called ML2-plugin)
    • At this point you should be able to login to DLUX at your installed server e.g. http://192.168.1.132:8181/dlux/index.html using the account "admin" and the In Hidefault password "admin".
  11. In Horizon, launch mininet-vm created earlier
  12. ssh to mininet VM and enter
    • sudo mn –controller=remote,ip=192.168.1.132
  13. Bring up a VM and validate basic functionality: this will be initially a manual sequence and eventually scripted using OpenStack APIs
Take 0

Tried CentOS 7 but continually getting errors:

  1. When installing, select the "Server with GUI" profile, leaving all options blank (it's unclear whether any are needed at this point)
  2. As su, add your username to /etc/sudoers via "visudo"
  3. Log out of root!
  4. Install git: sudo yum install git
  5. Create devstack/local.conf, adding/replacing these lines
    • FLAT_INTERFACE=(your ethernet interface)
    • ADMIN_PASSWORD=(random string)
    • MYSQL_PASSWORD=(random string)
    • RABBIT_PASSWORD=(random string)
    • SERVICE_PASSWORD=(random string)
  6. Start the devstack install: cd devstack; ./stack.sh
  7. A variety of errors received - no reason why, not time to debug
copper/academy/previous.txt · Last modified: 2015/09/29 23:22 by Bryan Sullivan