GithubHelp home page GithubHelp logo

whwby / bgs_vagrant Goto Github PK

View Code? Open in Web Editor NEW

This project forked from trozet/bgs_vagrant

0.0 1.0 0.0 482 KB

Automatic Deployment of OPNFV (OpenStack HA + OpenDaylight)

License: Apache License 2.0

Shell 100.00%

bgs_vagrant's Introduction

Foreman/QuickStack Automatic Deployment README

A simple bash script (deploy.sh) will provision out a Foreman/QuickStack VM Server and 4-5 other baremetal or VM nodes in an OpenStack HA + OpenDaylight environment.

##Pre-Requisites ####Baremetal:

  • 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
  • Internet access via first (Admin) or third interface (Public)
  • No other hypervisors should be running on JumpHost

####VM Nodes:

  • JumpHost with 3 interfaces, configured with IP, connected to separate VLANS
  • DHCP should not be running in any VLAN. Foreman will act as a DHCP Server
  • 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 24GB of RAM
  • Internet access via the first (Admin) or third interface (Public)
  • No other hypervisors should be running on JumpHost

##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 nodes into Foreman and set them to Build mode

####Baremetal Only:

  • 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

####VM Only:

  • deploy.sh then brings up 5 more Vagrant VMs
  • Checks into Foreman and tells Foreman nodes are built
  • Configures and starts puppet on each node

##Execution Instructions

####Baremetal Only:

  • 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)
  • Execute deploy.sh via: ./deploy.sh -base_config /root/bgs_vagrant/opnfv_ksgen_settings.yml

####VM Only:

  • Execute deploy.sh via: ./deploy.sh -virtual
  • Install directory for each VM will be in /tmp (for example /tmp/compute, /tmp/controller1)

####Both Approaches:

  • Install directory for foreman-server is /tmp/bgs_vagrant/ - This is where vagrant will be launched from automatically
  • To access the VM you can 'cd /tmp/bgs_vagrant' and type 'vagrant ssh'
  • To access Foreman enter the IP address shown in 'cat /tmp/bgs_vagrant/opnfv_ksgen_settings.yml | grep foreman_url'
  • The user/pass by default is admin//octopus

##Redeploying Make sure you run ./clean.sh for the baremetal deployment with your opnfv_ksgen_settings.yml file as "-base_config". This will ensure that your nodes are turned off and that your VM is destroyed ("vagrant destroy" in the /tmp/bgs_vagrant directory). For VM redeployment, make sure you "vagrant destroy" in each /tmp/ as well if you want to redeploy. To check and make sure no VMs are still running on your Jumphost you can use "vboxmanage list runningvms".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.