How to setup and use the OPNFV/BGS/FUEL build system. This is a work in progress, find the latest revision in genesis DOC/README.build and README.install
- A x86_64 host (real iron or VM) with Ubuntu 12.04/14.04 LTS installed - 100 GB storage - 8 GB RAM
On the host, the following packages must be installed: - docker - see https://docs.docker.com/installation/ubuntulinux/ for installation notes for 12.04 and 14.04 - git (simply available through apt-get install git)
When having installed Docker, add yourself to the docker group:
usermod -a -G docker <userid>
Also make sure to define relevant dns servers part of the global dns chain in in your /etc/default/docker(.io) config file, eg.
DOCKER_OPTS=" --dns=126.96.36.199 --dns=188.8.131.52"
Then restart docker with "service docker(.io) restart".:
Note: Ubuntu Trusty comes with a docker.io package
===== 3. Setting up OPNFV Gerrit in order to being able to clone the code ===== Start by creating a SSH key, if you don't already have one, create one with ssh-keygen Add your generated public key in OPNFV Gerrit -https://gerrit.opnfv.org/ (this requires a linuxfoundation account, create one if you do not already have one) Select "SSH Public Keys" to the left and then "Add Key" and paste your public key in.
So now we're coming to the fun part! Let's clone the code repository:
git clone https://gerrit.opnfv.org/gerrit/fuel
Change the directory to "build"
YOU DO NOT NEED TO SET UP YOUR BUILD ENVIRONMENT, THE TOP MAKE ALL TARGET WILL DO THAT FOR YOU IF NOT ALREADY DONE, THE BELOW ACTIONS IN THIS SECTION ARE NOT NEEDED! Note and TODO: The build system will for now partly run as sudo as that is needed for the debootstrap procedure to create the root file system for the Ubuntu 12.04 Docker image - BUT NOTE, NONE OF THE MAKEFILES OR SCRIPTS SHALL BE EXECUTED WITH SUDO/ROOT PRIVILEDGES! (TODO: Change the scripts so that no root priviledges will be needed) With your ordinary user-, run the following commands from your git root: cd docker make (and you will be prompted for your password by sudo) cd ..
That's it, time to build!
If the build is successful, you will find the generated ISO file in the release subdirectory!
If error "debconf: unable to initialize frontend: Dialog" is generated, add following envvar in docker/ubuntu-builder/Dockerfile:
ENV DEBIAN_FRONTEND noninteractive
—- Now the tricky part - to deploy. This is under development and will be scripted in more detail.
1. Mount the built .iso file (release/opnfv-<version>.iso) as a bootdevice to the fuel server.
2. Reboot the fuel server.
The system now boots from the ISO image.
3. Change the grub boot params
When Press Tab to edit . is shown press Tab. Change showmenu=no to showmenu=yes. Change netmask=255.255.255.0 to netmask=255.255.0.0. Press Enter.
4 Wait until screen Fuel setup . is shown.
Note: This takes about 30 minutes.
5. Select PXE Setup and change the following fields to appropriate values (example below):
Static Pool Start 10.20.0.3 Static Pool End 10.20.0.254 DHCP Pool Start 10.20.128.3 DHCP Pool End 10.20.128.254
6. Select DNS & Hostname and change the following fields to appropriate values:
Hostname <CEE Region name>-fuel Domain <Domain Name> Search Domain <Search Domain Name> Hostname to test DNS <Hostname to test DNS>
7. Select Time Sync and change the following fields to appropriate values:
NTP Server 1 <Customer NTP server 1> NTP Server 2 <Customer NTP server 2> NTP Server 3<Customer NTP server 3> Note: This step is only to pass the network test, the actual ntp parameters will be set with the pre_deply script.
8. Start the installation.
Select Quit Setup and press Save and Quit. Installation starts, wait until a screen with logon credentials is shown. Note: This takes about 15 minutes.
10. Enable PXE Booting and put it first in the bios boot order menu.
11. Reboot the controller- and compute blades.
12. Connect to Fuel wit a browser towards port 8000
13. Create and name a new OpenStack environment, to be installed.
14. Select Icehouse on Ubuntu . in field OpenStack Release.
15. Select deployment mode.
Select the Multi-node with HA.
16. Select compute node mode.
Select KVM as hypervisor.
17. Select network mode.
Select Neutron with VLAN segmentation.
18. Select Storage Backends.
Select Ceph for Cinder and default for glance.
19. Select additional services.
Check option Install Celiometer (OpenStack Telemetry).
20. Create the new environment.
21. Wait for availability nodes.
Wait until all nodes are displayed in top right in <total number of server> TOTAL NODES and <total number of servers> UNALLOCATED NODES.
22. Open the created environment.
23. Open the networks tab.
24. Update the public configuration.
Change the following fields to appropriate values: IP Range Start to <Public IP Address start> IP Range End to <Public IP Address end> CIDR to <CIDR for Public IP Addresses> Gateway to <Gateway for Public IP Addresses> Check VLAN tagging. Set appropriate VLAN id.
25. Update the management configuration.
Set CIDR to 172.16.255.128/25. Check VLAN tagging. Set appropriate VLAN id.
26. Update the storage configuration.
Set CIDR to the appropriate value Check VLAN tagging. Set appropriate VLAN id.
27. Update the Neutron L2 configuration.
Set VLAN ID range.
28. Update the Neutron L3 configuration.
Set Internal network CIDR to an appropriate value Set Internal network gateway to an appropriate value Set Floating IP ranges. Set DNS Servers
29. Save Settings.
30. Click "verify network" to check the network set-up
31. Update storage configuration.
32. Open the nodes tab.
33. Assign roles.
Check Controller and Telemetry . MongoDB. Check three nodes to be installed as Controller in pane Assign Role. Click Apply Changes. Check Compute. Check nodes to be installed as Compute nodes in pane Assign Role. Click Apply Changes.
34. Configure interfaces.
Check Select All to select all nodes with Control, Telemetry . MongoDB and Compute node roles. Click Configure Interfaces. Screen Configure interfaces on number of <number of nodes> nodes is shown. Assign interfaces (bonded) for mgmt-, admin-, private-, public- and storage networks
35. Run the pre-deploy script.
Log on as root to the Fuel node. Print Fuel environment Id (fuel env) #> id | status | name | mode | release_id | changes <id>| new | <CEE Region name>| ha_compact | 2 | <ite specific information>
36. Run the pre-deployment script (/opt/opnfv/pre-deploy.sh <id>)
As prompted for-, set the DNS servers to go into /etc/resolv.conf. As prompted for-, set any Hosts file additions for controllers and compute nodes. You will be prompted for name, FQDN and IP for each entry. Press return when prompted for a name when you have completed your input. As prompted for-, set NTP upstream configuration for controllers. You will be prompted for a NTP server each entry. Press return when prompted for a NTP server when you have completed your input.
37. Deploy the environment.
In the Fuel GUI, click Deploy Changes.
38 Verify the OpenStack Environment
Open the Health Check tab . Select Select All. Click Run tests.