This project uses Ansible to setup an OpenStack cluster with the services listed below.
-
Core services
- Keystone - for identity management
- Glance - for images
- Nova and Placement - for instances
- Neutron - for networking
-
Optional services
- Swift - for object storage
- Cinder - for block storage (please read the readmes of the roles)
- Barbican - for key management
- Trove - for databases
- Heat - for orchestrations
- Magnum - for container orchestration
- Horizon - OpenStack UI
This project for RHEL8 Kickstart provides kickstart files to automate the installation of the nodes. There are also scripts to create some virtual machines.
The following packages are required on RHEL8:
- ansible-collection-ansible-posix for SELinux updated
- ansible-collection-community-mysql for database queries
- ansible-collections-openstack for project, service, endpoint, user and role management
There should be at least one controll node and two compute nodes (three object nodes). Each target must be accessible via SSH and requires passwordless sudo rights.
Swift uses directories on the object nodes as storage. The roles/role for the rings creates rings for all storage devices set in vars/config.yml (object_storage). Each object node can have multiple storage devices. The mount point for these storage devices must be at /srv/node/
Preperation:
- Install required ansible packages on the local machine
- Prepare passwordless SSH and sudo on all nodes
- Swift: Prepare mount points for storage devices on object nodes (only for Swift)
- Select the roles in vars/service-selection.yml
- Rename vars/secrets-tmp.yml to vars/secrets.yml and enter your secrets
- Update the variables in vars/config.yml (at the moment only a setup with a singe controller node is supported)
- Set the IPs (or ssh hosts from ~/.ssh/config) in inventory
Run:
ansible-playbook openstack.yml
You can find more information in the README of the roles. You should install at least the core services mentioned at the top of this README.
It is recommended to use the roles in this order.
- Preparation (all nodes)
- Misc Services (contoller)
- keystone (contoller)
- Glance (contoller)
- Nova
- Neutron
- Swift
- Cinder
- Barbican (contoller)
- Trove (contoller)
- Heat (contoller)
- Magnum (contoller)
- Horizon (contoller)
This project uses the OpenStack module
The config files in this repository are adjusted files based on the default configs on RHEL8 with RDO. local_settings is provided by OpenStack and adjusted in this project.