I have verified that the work-around in Comment 2 actually works.
I brought up OSP9 using the following overcloud deploy:
openstack overcloud deploy --verbose -t 90 --templates --control-scale 1 --ceph-storage-scale 3 --compute-scale 1 -e ${HOME}/templates/environments/storage-environment.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-ceph-devel.yaml --compute-flavor compute --ceph-storage-flavor ceph-storage --control-flavor control --ntp-server clock.redhat.com --libvirt-type kvm
the storage-environment.yaml file that I used contains already contains a parameter_defaults: ExtraConfig: clause. This failed to install the overcloud. When I added the suggested lines to the storage-environment.yaml file, the overcloud installed. After that, I verified that the values set in the puppet-ceph-storage-devel.yaml file were the same as those set in the actual overcloud.
[stack@magna050 ~]$ grep -i fsid /usr/share/openstack-tripleo-heat-templates/environments/puppet-ceph-devel.yaml
CephClusterFSID: '4b5c8c0a-ff60-454b-a1b4-9747aa737d19'
[stack@magna050 ~]$ ssh heat-admin.2.6
Last login: Tue Aug 22 01:13:53 2017 from 192.0.2.1
[heat-admin@overcloud-controller-0 ~]$ sudo ceph fsid
4b5c8c0a-ff60-454b-a1b4-9747aa737d19