I’ve been using Tripleo Quickstart. I need custom deploys. Start with modifying the heat templates. I’m doing a mitaka deploy
git clone https://github.com/openstack/tripleo-heat-templates.git cd tripleo-heat-templates/ git branch --track mitaka origin/stable/mitaka git checkout mitaka
diff -r /usr/share/openstack-tripleo-heat-templates/ tripleo-heat-templates/
Mine shows some differences, but in the file extraconfig/tasks/liberty_to_mitaka_aodh_upgrade_2.pp which should be OK. The commit is
Add redis constraint to aodh upgrade manifest
Modify the launch script in /home/stack
$ diff overcloud-deploy.sh.orig overcloud-deploy.sh 48c48 < openstack overcloud deploy --templates --libvirt-type qemu --control-flavor oooq_control --compute-flavor oooq_compute --ceph-storage-flavor oooq_ceph --timeout 60 -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml -e $HOME/network-environment.yaml --neutron-network-type vxlan --neutron-tunnel-types vxlan --ntp-server pool.ntp.org \ --- > openstack overcloud deploy --templates /home/stack/tripleo-heat-templates --libvirt-type qemu --control-flavor oooq_control --compute-flavor oooq_compute --ceph-storage-flavor oooq_ceph --timeout 60 -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml -e $HOME/network-environment.yaml --neutron-network-type vxlan --neutron-tunnel-types vxlan --ntp-server pool.ntp.org \
The only change should be from
--templates #(followed by another flag which means that --templates takes the default)
to
--templates /home/stack/tripleo-heat-templates
OK…let’s make sure we still have a stable system. First, tear down the overcloud deliberately:
[stack@undercloud ~]$ . ./stackrc [stack@undercloud ~]$ heat stack-delete overcloud Are you sure you want to delete this stack(s) [y/N]? y +--------------------------------------+------------+-----------------+---------------------+--------------+ | id | stack_name | stack_status | creation_time | updated_time | +--------------------------------------+------------+-----------------+---------------------+--------------+ | 00d81e5b-c2f9-4f6a-81e8-b135fadba921 | overcloud | CREATE_COMPLETE | 2016-06-15T18:01:25 | None | +--------------------------------------+------------+---------------
Wait until the delete is coplete with
$ watch heat stack-list
Wait until it changes from
+--------------------------------------+------------+--------------------+---------------------+--------- -----+ | id | stack_name | stack_status | creation_time | updated_ time | +--------------------------------------+------------+--------------------+---------------------+--------- -----+ | 00d81e5b-c2f9-4f6a-81e8-b135fadba921 | overcloud | DELETE_IN_PROGRESS | 2016-06-15T18:01:25 | None | +--------------------------------------+------------+--------------------+---------------------+--------- -----+
To
+----+------------+--------------+---------------+--------------+ | id | stack_name | stack_status | creation_time | updated_time | +----+------------+--------------+---------------+--------------+ +----+------------+--------------+---------------+--------------+
And now run the modified overcloud deploy:
./overcloud-deploy.sh
End of the output looks like this
Stack overcloud CREATE_COMPLETE /home/stack/.ssh/known_hosts updated. Original contents retained as /home/stack/.ssh/known_hosts.old PKI initialization in init-keystone is deprecated and will be removed. Warning: Permanently added '192.0.2.9' (ECDSA) to the list of known hosts. The following cert files already exist, use --rebuild to remove the existing files before regenerating: /etc/keystone/ssl/certs/ca.pem already exists /etc/keystone/ssl/private/signing_key.pem already exists /etc/keystone/ssl/certs/signing_cert.pem already exists Connection to 192.0.2.9 closed. Skipping "horizon" postconfig because it wasn't found in the endpoint map output Overcloud Endpoint: http://10.0.0.4:5000/v2.0 Overcloud Deployed + heat stack-list + grep -q CREATE_FAILED + exit 0
Don’t be fooled by the last line grep -q CREATE_FAILED as that is the shell script execution logging, not a statement of failure.
OK, to do a proper “Hello, World” here I’d really like to be able to affect change on the deployment. I’m going to try and set a coupole Keystone config values that are not set (yet) in /etc/keystone/keystone.conf.
In my undercloud git repo for tripleo-heat-templates I make changes to the Overcloud post config.
$ git diff diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp index c353ec0..c6385d4 100644 --- a/puppet/manifests/overcloud_controller.pp +++ b/puppet/manifests/overcloud_controller.pp @@ -223,6 +223,11 @@ if hiera('step') >= 3 { #TODO: need a cleanup-keystone-tokens.sh solution here + keystone_config { + 'identity/domain_specific_drivers_enabled': value => 'True'; + 'identity/domain_config_dir': value => '/etc/keystone/domains'; + } + file { [ '/etc/keystone/ssl', '/etc/keystone/ssl/certs', '/etc/keystone/ssl/private' ]: ensure => 'directory', owner => 'keystone',
And rerun
./overcloud-deploy.sh
Once it has successfull deployed, I can check to see if the change shows up in the keystone.conf file.
$ . ./stackrc [stack@undercloud ~]$ openstack server list +--------------------------------------+-------------------------+--------+---------------------+ | ID | Name | Status | Networks | +--------------------------------------+-------------------------+--------+---------------------+ | 761a1b61-8bd1-4b85-912b-775e51ad99f3 | overcloud-controller-0 | ACTIVE | ctlplane=192.0.2.11 | | f123da36-9b05-4fc3-84bb-4af147fa76f7 | overcloud-novacompute-0 | ACTIVE | ctlplane=192.0.2.10 | +--------------------------------------+-------------------------+--------+---------------------+ [stack@undercloud ~]$ ssh heat-admin@192.0.2.11 $ sudo grep domain_specific /etc/keystone/keystone.conf #domain_specific_drivers_enabled = false domain_specific_drivers_enabled = True # if domain_specific_drivers_enabled is set to true. (string value) [heat-admin@overcloud-controller-0 ~]$ sudo grep domain_config_dir /etc/keystone/keystone.conf #domain_config_dir = /etc/keystone/domains domain_config_dir = /etc/keystone/domains
Changes applied.