Skip to content

Instantly share code, notes, and snippets.

@starbops
Last active March 11, 2016 01:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save starbops/cfcd129f82868406456d to your computer and use it in GitHub Desktop.
Save starbops/cfcd129f82868406456d to your computer and use it in GitHub Desktop.
Development for Fully-Automated Bare Metal Provisioning in OpenStack

development for fully-automated bare metal provisioning in openstack

setup ironic

  • before deployment, administrator needs to setup

  • enroll baremetal nodes to ironic

    • register node specs (CPU number, memory size, etc...)
    • register mac address as a port
    • register a driver and enroll bmc access information
  • create flavors for baremetal deployment (user requests a baremetal node by selecting a flavor)

  • create disk images for baremetal

    • deployment image (only used for deployment)
      • bm-deploy-kernel and bm-deploy-ramdisk
    • user os image
      • user-image, user-image-vmlinuz and user-image-initrd

overview of deployment

  1. ironic powers on a baremetal node using a driver
  2. the baremetal node gets a deployment image
  3. the deployment image configures iscsi target
  4. ironic copies a user os image to the baremetal node
  5. ironic reboots the baremetal node
  6. the baremetal is booted by the user image

more advanced features are required

  • multi tenancy
  • attach virtual volumes (cinder integration)
  • security groups
  • etc...

the goal of multi tenancy

  • network isolation is a must
  • requires some configuration to physical switches
  • network configuration also needs to be done automatically

first idea

  • isolate network simply adopting vlan
  • but all baremetal have to download user os image from ironic node

next idea

  • each tenant has their own ironic node
  • not practical because it consumes too many nodes

solution

  • one ironic manages multiple tenants
  • two types of vlan
    1. deployment vlan
      • created by administrator as a neutron network
      • ironic compute node is connected to this vlan
      • each baremetal node connects to this vlan only when deployment
    2. tenant vlan
      • created by tenant user as a neutron network
      • baremetal nodes in a tenant connect to this type of vlan after deployment
  • switch vlan types before and after deployment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment