Ansible and OpenStack
Installing OpenStack
Base System
- Bare Metal
- Cloud instances
- Docker?
System Dependencies
- Managed manually
- Package deps
- Baked images
Service Dependencies
- SQL Database
- AMQP Messaging
OpenStack Installation Source
- Packages
- Venvs
- Git repos
OpenStack Installation Order
- No order per se
- Keystone first
- glance, nova, neutron, cinder, swift, heat, horizon, etc
- setup services in keystone
- add images, flavors, networks, volume types
Ansible Best Practices
Arranging Content
- Cleanly separated roles
- Generic default data in roles
- Explicit site data loaded externally
- Thematic tags
- Protection around disruption
- Apply roles via groups
Execution
- Dev/CI/Test installs should mirror Prod
- Consider RBAC frontends like Jenkins or Tower
- Logging is your friend
Scaling
- Crank up the forks
- Provide stage vs deploy capability
- Beware of API limits
- Dynamic inventory with facts provided
Upgrading OpenStack
Reuse content
- Use the same roles
- Orchestrate them as needed
- Orchestrate the restarts
Upgrade Order
- Loose order between services
- Beware of cross project features
- Beware of shared userland changes
- Order important WITHIN services
- Nova is the complicated example
Database Migrations
- Painful for Nova (prune deleted content)
- Service interruption
- Rolling back is... difficult
OpenStack Ansible Resources
Complete Systems
- Ursula (Blue Box)
- https://github.com/blueboxgroup/ursula
- Stackforge os-ansible-deployment (Rackspace Private Cloud)
- https://github.com/stackforge/os-ansible-deployment
Modules
- Upstream
- A ton on the way https://github.com/ansible/ansible-modules-extras/pull/92
- 3rd party
- https://github.com/openstack-ansible/openstack-ansible-modules
People
- #ansible (Freenode)
- #openstack-operators (Freenode)
- ops midcycle-meetups
- ops track at summit
Ansible and OpenStack
By Jesse Keating
Ansible and OpenStack
Some thoughts on deploying OpenStack with Ansible
- 2,327