Error: Could not set 'present' on ensure: No such file or directory - /etc/heat/heat.conf at 72:/etc/puppet/modules/heat/manifests/keystone/domain.pp

Bug #1656389 reported by James Slagle on 2017-01-13
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
High
Unassigned

Bug Description

I've hit this error during Controller deployment Step3 when using deployed servers where all the packages are not already preinstalled. I'm deploying with EnablePackageInstall: True.

Jan 13 18:18:17 tripleo-05.tripleo.lab.eng.bos.redhat.com os-collect-config[25652]: Error: Could not set 'present' on ensure: No such file or directory - /etc/heat/heat.conf at 72:/etc/puppet/modules/heat/manifests/keystone/domain.pp
Jan 13 18:18:17 tripleo-05.tripleo.lab.eng.bos.redhat.com os-collect-config[25652]: Wrapped exception:
Jan 13 18:18:17 tripleo-05.tripleo.lab.eng.bos.redhat.com os-collect-config[25652]: No such file or directory - /etc/heat/heat.conf
Jan 13 18:18:17 tripleo-05.tripleo.lab.eng.bos.redhat.com os-collect-config[25652]: Error: /Stage[main]/Heat::Keystone::Domain/Heat_config[DEFAULT/stack_user_domain_name]/ensure: change from absent to present failed: Could not set 'present' on ensure: No such file or directory - /etc/heat/heat.conf at 72:/etc/puppet/modules/heat/manifests/keystone/domain.pp

The error seems to be because we include the heat keystone domain class at step 3 in puppet-tripleo:

  if $step >= 3 {
    class { '::heat::keystone::domain':
      manage_domain => false,
      manage_user => false,
      manage_role => false,
    }
  }

That command requires heat.conf, but nothing has installed openstack-heat-common yet, as that package does not get installed until step 4 (various heat service manifests, e.g., api.pp, are included at step4 in puppet-tripleo).

It seems this is kind of racey does not happen 100% of the time b/c in puppet-tripleo/manifests/profile/base/heat/engine.pp we have:

  if $step >= 4 or ( $step >= 3 and $sync_db ) {
    include ::heat::engine
  }

So in Step3 with sync_db=True, ::heat::engine will end up installing openstack-heat-common. In cases where the bootstrap node happens to try to setup the heat keystone domain first, you won't hit this error.

James Slagle (james-slagle) wrote :

I'm thinking the right fix is in puppet-heat:
https://review.openstack.org/420147

Changed in tripleo:
importance: Undecided → High
assignee: nobody → James Slagle (james-slagle)
milestone: none → ocata-3
status: New → In Progress
James Slagle (james-slagle) wrote :

puppet-tripleo patch instead:
https://review.openstack.org/420173

Changed in tripleo:
milestone: ocata-3 → ocata-rc1
Changed in tripleo:
milestone: ocata-rc1 → ocata-rc2
Changed in tripleo:
milestone: ocata-rc2 → pike-1
Changed in tripleo:
milestone: pike-1 → pike-2
Changed in tripleo:
milestone: pike-2 → pike-3
Emilien Macchi (emilienm) wrote :

There are no currently open reviews on this bug, changing the status back to the previous state and unassigning. If there are active reviews related to this bug, please include links in comments.

Changed in tripleo:
status: In Progress → New
assignee: James Slagle (james-slagle) → nobody
status: New → Triaged
Changed in tripleo:
milestone: pike-3 → pike-rc1
Ben Nemec (bnemec) wrote :

Looks like this was fixed by https://review.openstack.org/#/c/420173/ but for some reason the bug didn't get updated.

Changed in tripleo:
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers