User Tools

Site Tools


get_started_experiment1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
get_started_experiment1 [2015/03/13 16:29]
Daniel Farrell [Overview] Added link to ODL Puppet mod
get_started_experiment1 [2015/09/21 15:59] (current)
Sai Sindhur Malleni [Overview]
Line 9: Line 9:
 ===== Overview ===== ===== Overview =====
 OPNFV testing environment is achieved by using a handful of open source tools. ​ They are listed in order below in hierarchical order: OPNFV testing environment is achieved by using a handful of open source tools. ​ They are listed in order below in hierarchical order:
-  - Khaleesi - An Ansible framework responsible kicking off builds and tests+  - [[https://​www.vagrantup.com/​|Vagrant]] - Create and configure lightweight,​ reproducible,​ and portable development environments. 
 +  - [[https://​www.virtualbox.org/​|VirtualBox]] - A "​hosted"​ hypervisror used to host the Foreman node. 
 +  - [[https://​github.com/​trozet/​khaleesi|Khaleesi]] - An Ansible framework responsible kicking off builds and tests
   - Foreman - A baremetal/​virtual host management tool   - Foreman - A baremetal/​virtual host management tool
   - OPNFV/​Genesis - Puppet modules for invoking QuickStack ​     - OPNFV/​Genesis - Puppet modules for invoking QuickStack ​  
Line 16: Line 18:
   - [[https://​github.com/​dfarrell07/​puppet-opendaylight|OpenDaylight Puppet Module]] - Used to install OpenDaylight   - [[https://​github.com/​dfarrell07/​puppet-opendaylight|OpenDaylight Puppet Module]] - Used to install OpenDaylight
  
-The tools above work together to create the OPNFV target system, but they are not dependent on each other. ​ For example, instead of using Foreman you could just use another baremetal provisioner or simply use raw puppet to install OPNFV. ​ Khaleesi contains a playbook/​library to interact with Foreman, but is also used to provision other OpenStack clouds (rackspace, etc.) and is capable of using other OpenStack installers.+The tools above work together to create the OPNFV target system, but they are not dependent on each other. ​ For example, instead of using Foreman you could just use another baremetal provisioner or simply use raw puppet to install OPNFV. ​ Khaleesi contains a playbook/​library to interact with Foreman, but is also used to provision other OpenStack clouds (rackspace, etc.) and is capable of using other OpenStack installers.  The order below is based on the deploy.sh script running on a baremetal server.
  
 The order of operations for how these tools interact from start to end are as follows: The order of operations for how these tools interact from start to end are as follows:
 +
 +//Vagrant -> invokes VirtualBox to build a CentOS VM for Foreman node and a shared filesystem with the host ->//
  
 //Khaleesi -> invokes playbook to rebuild Foreman nodes ->// //Khaleesi -> invokes playbook to rebuild Foreman nodes ->//
Line 31: Line 35:
  
 //Khaleesi -> runs Tempest and provides results// //Khaleesi -> runs Tempest and provides results//
 +
 +The below diagram presents a brief summary of the various components in the installer and interactions between them.
 +
 +{{:​flow.png|}}
 +
 +[[Foreman_QuickStack_Tool_Interaction| Click here for more details on tool interactions]]
 +----
 +===== QuickStack/​Foreman Video Recordings =====
 +
 +  * [[https://​bluejeans.com/​s/​88tD/​| OPNFV Puppet Module Walkthrough]]
 +  * [[https://​bluejeans.com/​s/​89gb/​| Foreman Walkthrough]]
 +  * [[https://​bluejeans.com/​s/​8kkr/​| Khaleesi Walkthrough]]
 +
  
 ---- ----
Line 39: Line 56:
   - All servers will run CentOS 7.   - All servers will run CentOS 7.
   - Provisioning Host installed with [[http://​isoredirect.centos.org/​centos/​7/​isos/​x86_64/​|CentOS7]]   - Provisioning Host installed with [[http://​isoredirect.centos.org/​centos/​7/​isos/​x86_64/​|CentOS7]]
 +  - Provisioning Host is on Baremetal or a VM capable of running Virtualbox with hardware virtualization extensions (Intel VT-x or AMD-V) and Physical Address Extensions (PAE/NX) enabled.
   - Management network should not have a DHCP server if using Foreman. ​ Foreman will run its own DHCP server.   - Management network should not have a DHCP server if using Foreman. ​ Foreman will run its own DHCP server.
   - If behind a firewall in your network you will need to use a proxy. ​ This guide has instructions on how to setup the tools to use your network'​s proxy server.   - If behind a firewall in your network you will need to use a proxy. ​ This guide has instructions on how to setup the tools to use your network'​s proxy server.
 +  - If OpenStack is being deployed onto baremetal servers, the control and compute nodes need to be:
 +    * Powered off
 +    * Set to PXE boot from the ADMIN network
 +    * Boot with BIOS support (PXE with UEFI is [[http://​projects.theforeman.org/​issues/​431|not supported by Foreman]])
  
 ---- ----
- 
 ===== Topology ===== ===== Topology =====
 Below is the topology being used in Intel POD 1: Below is the topology being used in Intel POD 1:
Line 52: Line 73:
  
 ===== Process ===== ===== Process =====
-To replicate an full install you should follow all of the steps below. ​ The steps are broken down by instructions per tool, in case you are only interested in using part of the OPNFV install:+It is now recommended you follow the "​Automatic Deployment"​ section below for installation. ​To replicate an full manual ​install you should follow all of the steps below. ​ The steps are broken down by instructions per tool, in case you are only interested in using part of the OPNFV install:
   * [[quickstack_opnfv_puppet_guide| OPNFV/​QuickStack Puppet Guide for installing ODL+OpenStack]]   * [[quickstack_opnfv_puppet_guide| OPNFV/​QuickStack Puppet Guide for installing ODL+OpenStack]]
   * [[foreman_guide| Foreman Guide]]   * [[foreman_guide| Foreman Guide]]
   * [[khaleesi_guide| Khaleesi Guide]]   * [[khaleesi_guide| Khaleesi Guide]]
  
 +----
 +
 +===== ISO Installation =====
 +[[ http://​artifacts.opnfv.org/​arno.2015.1.0/​foreman/​arno.2015.1.0.foreman.iso | Download the Foreman ISO ]]\\
 +The ISO is too large to fit on a DVD, use isohybrid and dd to write it to a usb stick:\\
 +//laptop$ isohybrid arno.2015.1.0.foreman.iso//​\\
 +//laptop$ sudo dd if=arno.2015.1.0.foreman.iso of=/dev/sdX bs=4M//\\
 +//laptop$ sync//\\
 +
 +*** important to replace /dev/sdX with the device of your USB stick ***
 +
 +Next boot off of the ISO and run the CentOS installation. The deploy.sh file referenced in the next section Automatic Deployment is installed with the ISO. Continue the OPNFV installation with the Automatic Deployment instructions.
 +
 +===== Automatic Deployment =====
 +Foreman/​QuickStack can now be automatically deployed!  ​
 +
 +A simple bash script (deploy.sh) will provision out a Foreman/​QuickStack VM Server and 4-5 other baremetal nodes in an OpenStack HA + OpenDaylight environment.
 +
 +=== Pre-Requisites ===
 +  * At least 5 baremetal servers, with 3 interfaces minimum, all connected to separate VLANs
 +  * DHCP should not be running in any VLAN.  Foreman will act as a DHCP server.
 +  * On the baremetal server that will be your JumpHost, you need to have the 3 interfaces configured with IP addresses
 +  * On baremetal JumpHost you will need an RPM based linux (CentOS 7 will do) with the kernel up to date (yum update kernel) + at least 2GB of RAM
 +  * Nodes will need to be set to PXE boot first in priority, and off the first NIC, connected to the same VLAN as NIC 1 of your JumpHost
 +  * Nodes need to have BMC/OOB management via IPMI setup
 +
 +=== How It Works ===
 +deploy.sh:
 +  - Detects your network configuration (3 or 4 usable interfaces)
 +  - Modifies a "​ksgen.yml"​ settings file and Vagrantfile with necessary network info
 +  - Installs Vagrant and dependencies
 +  - Downloads Centos7 Vagrant basebox, and issues a "​vagrant up" to start the VM
 +  - The Vagrantfile points to bootstrap.sh as the provisioner to takeover rest of the install
 +
 +bootstrap.sh:​
 +  - Is initiated inside of the VM once it is up
 +  - Installs Khaleesi, Ansible, and Python dependencies
 +  - Makes a call to Khaleesi to start a playbook: opnfv.yml + "​ksgen.yml"​ settings file
 +
 +Khaleesi (Ansible):
 +  - Runs through the playbook to install Foreman/​QuickStack inside of the VM
 +  - Configures services needed for a JumpHost: DHCP, TFTP, DNS
 +  - Uses info from "​ksgen.yml"​ file to add your baremetal nodes into Foreman and set them to Build mode
 +  - Issues an API call to Foreman to rebuild all nodes
 +  - Ansible then waits to make sure nodes come back via ssh checks
 +  - Ansible then waits for puppet to run on each node and complete
 +
 +=== Execution Instructions ===
 +On your JumpHost, clone or download the bgs_vagrant Arno repo:
 +                $ sudo -s
 +                # cd /root
 +                ​
 +       To download the Arno release
 +                # git clone -b v1.0 https://​github.com/​trozet/​bgs_vagrant.git
 +                # cd bgs_vagrant
 +                ​
 +       Or to use the latest build
 +                # git clone https://​gerrit.opnfv.org/​gerrit/​genesis
 +                # cd genesis/​foreman/​ci
 +
 +Edit opnvf_ksgen_settings.yml -> "​nodes"​ section:
 +        For each node, compute, controller1..3:​
 +                  * mac_address - change to mac_address of that node's Admin NIC (1st NIC)
 +                  * bmc_ip - change to IP of BMC (out-of-band) IP
 +                  * bmc_mac - same as above, but MAC address
 +                  * bmc_user - IPMI username
 +                  * bmc_pass - IPMI password
 +
 +        For each controller node:
 +                  * private_mac - change to mac_address of node's Private NIC (2nd NIC)
 +**Note:** Do not change the domain name of the nodes in opnvf_ksgen_settings.yml. ​ They must be in the opnfv.com domain.
  
 +Execute deploy.sh via: 
 +        # ./deploy.sh -base_config $PWD/​opnfv_ksgen_settings.yml
get_started_experiment1.1426264159.txt.gz · Last modified: 2015/03/13 16:29 by Daniel Farrell