This tutorial aims to illustrate the concepts surrounding orchestration in Openstack; both infrastructure orchestration and software configuration orchestration. The first three parts of the tutorial focus on orchestrating Openstack infrastrucuture resources while the latter part of the tutorial focuses on orchestrating software configurations via the use of cloud-init and Heat software deployments.
- Part I - Heat Basics
- Basic single-vm HOT templates (resources, parameters, outputs, intrinsic functions)
- Part II - Full Stack Deployment
- Full-stack deployment for single-vm (vm, networks, floating-ip, security-groups)
- Part III - Multi-instance deployments
- Nested templates, heat environments
- Part IV -Cloud-Init & Heat
- User data scripts, cloud-config, application deployment/configuration examples, signaling
- Part V - Software Deployments
- Software configuration alternative to cloud-init, VM lifecycle managment, non-replacement software configuration updates
- Part VI - Vertical and Horizontal Scaling
- Scaling a stack vertically (increase instance resources) or horizontally (add more instances; loadbalancers)
Each part in this tutorial has its own directory with a README.rst which the reader should follow while performing each exercise. Each README is quite extensive and contains useful links as well as documentation on each exercise.
This tutorial was built for the Openstack Liberty release however most concepts are applicable even up to the Newton release. I am planning on updating this tutorial to a newever version in the near feature. This tutorial also assumed you are working with a RHEL based image (a Centos 7 image is used all throughout the exercises). This second point only becomes more important in the second half of the tutorial when software configurations are covered.
Lastly, this tutorial assumes that you created a keypair in the key-pairs folder of the tutorial named heat_key. The reader can create this key as follows:
$ openstack keypair create heat_key > key-pairs/heat_key
The format of this tutorial as well as some of the exercises have been inspired by Miguel Grinberg's 4-part tutorial. I'd also like to thank Steve Hardy and his Software Deployment Primer. Lastly, I'd like to thank the Heat community for all their help on the #heat channel, their contintous support and quick replies.
Here's a list of usefull links, that the reader could definitely benefit from:
- Heat Template Guide
- Heat Template Specification
- Heat Resource Types and Details Specifications
- Heat Software Configruation
- Heat API Specification
- Heat Authorization Model
- Heat Stack Domain (Purpose & Configuration)
- Miguel Grinberg's OpenStack Orchestration In Depth Tutorial
- Pablo Nelson's Spining Up Stacks Using Heat Tutorial
- Software Deployment Primer
- Generic Software Configs
- Software Config gitHub repo
- OpenStack Heat And os-collect-config