Here is a nice Christmas present: you can use TripleO for a standalone Ceph deployment, with just a few lines of YAML. Assuming you have an undercloud ready for a new overcloud, create an environment file like the following:
resource_registry: OS::TripleO::Services::CephMon: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-mon.yaml OS::TripleO::Services::CephOSD: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-osd.yaml parameters: ControllerServices: - OS::TripleO::Services::CephMon CephStorageServices: - OS::TripleO::Services::CephOSD
and launch a deployment with:
openstack overcloud deploy --compute-scale 0 --ceph-storage-scale 1 -e the_above_env_file.yaml
The two lines from the environment file in resource_registry
are mapping (and enabling) the CephMon and CephOSD services in TripleO while the lines in parameters
are defining which services should be deployed on the controller and cephstorage roles.
This will bring up a two nodes overcloud with one node running ceph-mon and the other ceph-osd but the actual Christmas gift is that it implicitly provides and allows usage of all the features we already know about TripleO, like:
- baremetal provisioning
- network isolation
- a web GUI
- lifecycle management
- ... containers
- ... upgrades
For example, you can scale up the Ceph cluster with:
openstack overcloud deploy --compute-scale 0 --ceph-storage-scale 2 -e the_above_env_file.yaml
and this will provision a new Ironic node with the cephstorage role, configuring the required networks on it and updating the cluster config for the new OSDs. (Note the --ceph-storage-scale
parameter going from 1 to 2 in the second example).
Even more interestingly is that the above will work for any service, not just Ceph, and new services can be added to TripleO with just some YAML and puppet, letting TripleO take care of a number of common issues in any deployment tool, for example:
- supports multinode deployments
- synchronizes and orders the deployment steps across different nodes
- supports propagation of config data across different services
Time to try it and join the fun in #tripleo :)